Kotlin 列表有独立的可变和不可变变体,前者源自后者。但据我了解,对于数组,本身没有单独的不可变类型;相反,一个不可变数组被声明为Array<out Foo>.
这样对吗?
如果是这样,在这方面设计数组和列表类型的原因是什么?
这是正确的,Arrays 都是可变的,数组没有单独的只读接口。
这样做的原因是数组是低级构建块,通常不应在 API 中公开或通过封装边界传递,一般来说,没有理由在数据结构实现之外的列表上使用数组,有时,性能-关键代码。对于更高级别的操作,人们应该更喜欢列表和其他集合。
因此,鉴于数组通常由一个单一的、一致的逻辑部分封装和“拥有”,为不公开变异函数的数组引入一个单独的类型并不是那么切合实际。
| 归档时间: |
|
| 查看次数: |
363 次 |
| 最近记录: |