D 可以将'T'转换为'ref T'吗?
D 可以将'T'转换为'ref T'吗?,d,D,test1没有变异i,这告诉我它没有捕获i作为参考。ref是不能以这种方式使用的特殊限定符吗?: 尽管有些关键字既可以用作类型限定符,也可以用作存储类,但有些存储类不能用于构造新类型。一个例子是ref 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
,这告诉我它没有捕获i
作为参考。ref
是不能以这种方式使用的特殊限定符吗?:
尽管有些关键字既可以用作类型限定符,也可以用作存储类,但有些存储类不能用于构造新类型。一个例子是ref
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
}