在模块内创建dup函数-与数组的dup属性冲突

在模块内创建dup函数-与数组的dup属性冲突,d,D,如果我在我的D程序中创建了一个dup函数,我就不能再使用数组的dup属性了。此代码有效 import std.stdio; void main() { double[] v = [0.1, 0.2, 0.3]; writeln(v.dup); } 但此代码返回“clash.d(9):错误:函数clash.dup(double x)不能使用参数类型(double[])调用” 如何在程序中定义dup函数,而不丢失数组的dup属性?alias将其放入本地重载集中: alias dup =

如果我在我的D程序中创建了一个
dup
函数,我就不能再使用数组的
dup
属性了。此代码有效

import std.stdio;

void main() {
  double[] v = [0.1, 0.2, 0.3];
  writeln(v.dup);
}
但此代码返回“clash.d(9):错误:函数clash.dup(double x)不能使用参数类型(double[])调用”


如何在程序中定义
dup
函数,而不丢失数组的
dup
属性?

alias
将其放入本地重载集中:

alias dup = object.dup;

在您自己的
dup
函数定义的正下方。

别名
将其放入本地重载集:

alias dup = object.dup;

就在您自己的
dup
函数定义的正下方。

它可以工作。谢谢您能告诉我“对象”来自何处或提供一个引用吗?它是druntime中隐式导入的模块:dup函数就是其中的一个(类对象、异常、别名字符串和其他基本全局名称也是如此)。除了自动导入外,它没有什么特别之处,因此它遵循所有正常的名称查找和劫持规则,这就是别名行工作的原因。它工作正常。谢谢您能告诉我“对象”来自何处或提供一个引用吗?它是druntime中隐式导入的模块:dup函数就是其中的一个(类对象、异常、别名字符串和其他基本全局名称也是如此)。除了自动导入之外,它没有什么特别之处,因此它遵循所有正常的名称查找和劫持规则,这就是别名行工作的原因。