最近在这里讨论了在放置方面(功能名称的右侧或左侧等)D中有多奇怪const
。
现在我想知道,如果ref const X
与函数参数中的const ref X
相同吗?
两个版本都在我的测试项目中编译,但我想要一个确认
答案 0 :(得分:4)
只有在你需要使用parens时,订单才有意义。
void foo(ref const int* x) {...}
与
相同void foo(const ref int* x) {...}
但是,如果你想要const(int)*
,那么你将不得不这样做
void foo(ref const(int)* x) {...}
因为那时没有办法将ref
放在const
的右侧,并且那里有parens。
我唯一知道属性顺序对参数,其他变量类型或返回类型的重要性的情况,如果它不是语法问题是auto ref
,因为auto ref
本质上是一个由两个单词组成的属性,而不是两个影响符号的独立属性。在所有其他情况下,订单不重要。顺序对功能属性也没有影响。它只是功能签名位的左侧和右侧的整个排序问题。