D 为什么是空的!(Nullable!int)拒绝编译?
以下代码拒绝编译:D 为什么是空的!(Nullable!int)拒绝编译?,d,phobos,D,Phobos,以下代码拒绝编译: Nullable!(Nullable!int) nni = Nullable!(Nullable!int)(10); 出现此错误消息时: Error: inout method nullable.Nullable!(Nullable!(immutable(int))).Nullable.this is not callable using a mutable object 为什么?这似乎是一条错误消息 Nullable的构造函数的参数!(T) 是T。在这种情况下,T是一个
Nullable!(Nullable!int) nni = Nullable!(Nullable!int)(10);
出现此错误消息时:
Error: inout method nullable.Nullable!(Nullable!(immutable(int))).Nullable.this is not callable using a mutable object
为什么?这似乎是一条错误消息
Nullable的构造函数的参数!(T)
是T
。在这种情况下,T
是一个可为空的!int
,但您正在传递一个int
。您需要将int
包装在一个可空的文件中
Nullable!(Nullable!int) foo = Nullable!(Nullable!int)(Nullable!int(10));
天哪,那看起来很糟糕,不是吗?:)在一行中使用五次
Nullable
。@DejanLekic您可以在变量声明中使用auto
,将其减少为三次。无论如何,在Nullable
上加倍也没有意义。别名Nullable!int-InnerNullable;并将其与auto foo=Nullable一起使用!InnerNullable(InnerNullable(10));改进了一些你为什么想要一个可空的或可空的?你想做到这一点吗?“它可以是空的,或者有一个可以是空的值,或者有一个值”我不明白你为什么要这么做。如果你能向我解释一个好的情况,也许我能看到一个我将来可能需要它的情况,但我从来没有遇到过,所以请原谅我。