【发布时间】:2018-03-23 05:25:22
【问题描述】:
假设一个函数/方法有一个本地可变数组,而函数/方法的返回类型是一个不可变数组。创建要返回的新不可变数组是一种常见做法:
- (NSArray *)someArray {
NSMutableArray *array = [NSMutableArray array]
// ...do something with array
return array.copy
}
但是,在 Swift 中,既然数组是值类型,我还需要这样做吗?
func someArray() -> [MyValue] {
var array = [MyValue]()
// do something with array
return array // or return Array(array)?
}
【问题讨论】:
-
只返回数组。在 Swift 中,数组是值类型并被复制(尽管在您的情况下,它没有被复制,但这是一个您不必关心的棘手的实现细节)。
标签: objective-c arrays swift immutability