gpt4 book ai didi

objective-c - Swift:我需要为函数返回创建一个新的不可变数组吗?

转载 作者:行者123 更新时间:2023-11-28 07:51:51 27 4
gpt4 key购买 nike

假设一个函数/方法有一个局部可变数组,并且函数/方法的返回类型是一个不可变数组。创建一个要返回的新的不可变数组是一种常见的做法:

- (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)?
}

最佳答案

以你的例子为例:

func someArray() -> [MyValue] {
var array = [MyValue]()

//...do something with array
return array
}

这将取决于您如何使用该功能。

如果你这样做:

  1. 让 arrTest = someArray()
    • let 将使 arrTest 不可变
  2. var arrTest = someArray()
    • var 将使 arrTest 可变
swift 中的

ArrayStruct,而Struct 是值类型,因此您的函数someArray() 基本上是返回数组的副本。
函数内部数组的创建并不能决定它的可变性。


所以回答你的问题:

不!您不需要这样做。
只需在 swift 中正常创建数组即可。

关于objective-c - Swift:我需要为函数返回创建一个新的不可变数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49442888/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com