2016-11-15 111 views
-1

我有這樣的代碼,我經常使用:如何從可選變量中獲取值,並在可選變量無效的情況下獲取默認值?

var myName = "Guest" 
if let data = dictionary["name"] as? String { myName = data; } 
func supply (name: myName) 

如何使它像這樣的(或類似):

guard let myName = dictionary["name"] as? String else { let myName = "Guest" } 
func supply (name: myName) 

我更喜歡後者,因爲它涉及較少的變量名,也更直截了當。我已經嘗試了代碼,但它看起來像括號內的let myName = "Guest"僅受限於括號內的變量作用域。如何讓它成爲可能?謝謝。

+2

使用無聚結器。 ''let myName =(dict [「name」] as?String)?? 「Guest」''' https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/BasicOperators.html –

+0

@EricKenny ow我明白了。我也可以將nil-coalescer和可選的類型轉換結合起來。太好了!請將您的評論作爲答案,以便我可以選擇它作爲最佳答案。謝謝! –

回答