D中函数参数的存储类说明符比较多,分别是:
- 没有任何
in(相当于const scope)outrefscopelazyconstimmutablesharedinout
他们背后的理性是什么?他们的名字已经提出了明显的用途。但是,有一些悬而未决的问题:
- 我应该默认使用
ref与类型函数参数结合in使用吗?struct - 是否
out隐含ref暗示? - 我什么时候应该使用none?
- 类和/或接口是否
ref有意义?(类类型默认为引用。) ref在数组切片上怎么样?- 我应该
const尽可能使用内置算术类型吗?
更笼统地说:在内置类型、数组、结构、类和接口的情况下,何时以及为什么应该对函数参数类型使用哪个存储类说明符?(为了稍微隔离问题的范围,请不要讨论shared,因为它有自己的孤立含义。)