dlang语言以下代码报错import stdstdio;import stdtypeconsNullable;void fooNullable!int x if xisNull writelnx is null; else writelnx is xget; void main Nullable!int x = null; Nu
这是因为在调用foo函数时,传入的参数x是一个Nullable!int类型的变量,而在传入时使用了null,实际上应该传入一个int类型的变量或使用Nullable!int的构造函数来创建一个非空的Nullable!int变量。可以将foo函数的调用修改为:
Nullable!int x = null;
Nullable!int y = 10;
foo(x.init); // 使用init函数初始化一个空的Nullable!int变量
foo(y);
或者修改foo函数的参数为int?类型,这样就可以直接传入null:
void foo(int? x) {
if (x is null) {
writeln("x is null");
} else {
writeln("x is ", x);
}
}
void main()
{
int? x = null;
int? y = 10;
foo(x);
foo(y);
foo(null); // 直接传入null
}
``
原文地址: https://www.cveoy.top/t/topic/fDi3 著作权归作者所有。请勿转载和采集!