这是因为在调用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
}
``
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

原文地址: https://www.cveoy.top/t/topic/fDi3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录