在斯威夫特4遊樂場驗證碼:過濾字典在Xcode中失敗,但成功在遊樂場
let time = 1234
let description: String? = nil
let keyed: [String : Any?] = [
"time": time,
"description": description
]
let filtered: [String : String] = keyed
.filter{ _, value in value != nil }
.mapValues { value in return String(describing: value!) }
print(keyed)
print(filtered)
產生這樣的輸出:
["description": nil, "time": Optional(1234)]
["time": "1234"]
這正是我想要的(只鍵值對,其中原始值不是nil
,值解包並轉換爲字符串)。但是,在Xcode 9(測試版3)中,我的構建失敗,出現在'filter' is unavailable
。這是一個測試¯\_(ツ)_/¯
類的事情,還是我錯過了什麼?
我無法重現相同的結果。在用Xcode 9 beta 3創建的一些項目中,您的代碼編譯時沒有問題,並生成您期望的輸出。你的環境中有什麼特別的東西? – OOPer
嗯。我無法想象如此。盡我所知,我正在使用Xcode的完全香草安裝。感謝您確認它在您的最終編譯。我會看看我能否弄清楚發生了什麼事。 – Subject22