d的外与系统

90哦吼

关注

阅读 53

2022-05-19


void fn() @safe {
() @trusted { x = new int; }();//安全了?
*x = 10; // 错误,不能在`@安全`代码中访问`@系统`变量
}
//x为外部

但,不仅是上面,还可这样:

extern int* x; // 推导为@system
@system bool initializedX = false;

@trusted void safeX(int* value)
{
x = value;
initializedX = true;
}

@trusted int* safeX()
in (initializedX)
{
return x;
}

@safe void fn()
{
safeX = new int;
*safeX = 10;
}

用​​@trusted​​包装接口.



精彩评论(0)

0 0 举报