是否可以将`T`转换为`ref T`?

时间:2016-07-19 09:31:08

标签: d

alias refT(T) = ref T;
void test1(refT!int v){
    v = 42;
}

void test2(ref int v){
    v = 42;
}

void main()
{
    import std.stdio;
    int i = 5;
    test1(i);
    writeln(i); // 5
    test2(i);
    writeln(i); // 42
}

test1不会改变i,它会告诉我它没有捕获i作为参考。 ref是一个不能以这种方式使用的特殊限定符吗?

1 个答案:

答案 0 :(得分:2)

ref is not a qualifier

  

虽然某些关键字既可以用作类型限定符,也可以用作存储类,但有些存储类不能用于构造新类型。一个例子是参考。