DMD 1.011 发布

qiezi 2007-04-12
我也觉得,为什么要改成ref呢?难道还要用在其它地方?不过class本来就是ref亚
oldrev 2007-04-12
soulmachine 写道
我一直没弄明白in,out,inout的区别,干脆不用。这个ref代替了inout,那么in,out还有用武之地吗?有人可以给个示例代码否?

out,inout,ref 类似于 C++ 的引用
qiezi 2007-04-12
out和引用还是有点区别的。对out参数读取值得到的是空指针(或是其它各类型默认值)
Colorful 2007-04-12
我是感觉在语法上跟Java,C#走的越来越近了。
我猜测in,out关键字应该是不会更改了吧。
我还是比较喜欢inout多过ref,虽然表达的是一个意思,但是似乎跟in,out不一致了,一下子还真不好转过弯来。inout比ref好理解多了。
oldrev 2007-04-12
ref 可不可以显式使用:
struct Foo { ... }
Foo x;
ref Foo y = &x;
Colorful 2007-04-12
我的理解是这样:
ref纯粹表达引用的概念,而out的参数我们应该在方法体内进行初始化。
我认为大多数情况ref足够可以解决相关问题了。
qiezi 2007-04-12
oldrev 写道
ref 可不可以显式使用:
struct Foo { ... }
Foo x;
ref Foo y = &x;

这个没有必要吧?
Foo* y = &x;
y.xxx
不是一样使用嘛。
oldrev 2007-04-12
qiezi 写道
oldrev 写道
ref 可不可以显式使用:
struct Foo { ... }
Foo x;
ref Foo y = &x;

这个没有必要吧?
Foo* y = &x;
y.xxx
不是一样使用嘛。

虽然指针和引用本质上是一样的,但是毕竟表示了两种不同的语义,比如函数可以返回引用就可以作为左值了
Global site tag (gtag.js) - Google Analytics