簡體   English   中英

Swift:我需要為函數返回創建一個新的不可變數組嗎?

[英]Swift: do I need to create a new immutable array for function return?

假設函數/方法具有本地可變數組,並且函數/方法的返回類型是不可變數組。 創建要返回的新的不可變數組是一種常見的做法:

- (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. let arrTest = someArray()
    • let arrTest不可變
  2. var arrTest = someArray()
    • var將使arrTest可變

swift中的ArrayStruct ,而Struct是值類型,因此您的someArray()函數基本上會返回該數組的副本。
函數內部數組的創建並不能確定其可變性。


因此,回答您的問題:

沒有! 您不需要這樣做。
通常只需迅速創建數組即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM