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