2016-05-17 34 views
2

我希望將數組[T]分配給可選數組[T?]。這看起來應該很簡單,但我想出的唯一解決方案是手動完成。將非可選項數組轉換爲可選數組的簡單方法

struct ArrayHelper<T> { 
func toArrayOfOptionals(input: [T]) -> [T?] { 
    var result = [T?]() 
    for value in input { 
     result.append(value) 
    } 
    return result 
} 
} 
+0

聽起來像'地圖'的東西可以做你整齊。 –

回答

5

我不認爲有任何內置的方式來做到這一點的無縫結合,地圖應該是一個簡單的解決方案:

var input = [T]() 
let output = input.map { Optional($0) } 

編輯:代碼修改的基礎上的建議註釋。

+2

稍微短一點:'let output:[Optional] = input.map {$ 0}' –

+3

或者'let output = input.map {Optional($ 0)}' – vacawama

+0

現在我知道Optional是一種裝飾其他類型的類型像其他人一樣,用一個普通的舊init。謝謝! – KevM

相關問題