我希望能夠在Swift中使用map
來修改我的對象數組,無需循環遍歷每個元素。在Swift中修改對象數組映射2.2(3.0)
這裏之前能夠做這樣的事情(更詳細here描述:
gnomes = gnomes.map { (var gnome: Gnome) -> Gnome in
gnome.age = 140
return gnome
}
感謝埃裏卡喪盾和其他新的提議都經歷了,現在我們擺脫C風格循環使用var
內循環。
在我的情況下,我第一次得到一個警告,刪除var
在隨後的錯誤我gnome
是一個常數(自然)
我的問題是:我們如何修改map
或新風格循環中的數組,以便爲Swift 3.0做好充分準備?
返回錯誤「$ 0 is immutable''。這是我的錯。我應該更加精確:(我使用的是結構而不是類,我敢打賭,默認情況下它們是不可變的 – kernelpanic
@kernelpanic既然你沒有向我們展示'Gnome'類,我必須包括我自己的類。你確定你的類的'age'屬性是一個可變的屬性嗎?(以及你的gnome數組)?上面的工作在Swift 2.2和Xcode 7.3中適用。 – dfri
@dfri我懷疑'Gnome'是一個結構 – vadian