2016-11-15 1 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

nil-coalescerを使用してください。 '' 'let myName =(dict [" name "]?String)?? "Guest" '' ' https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/BasicOperators.html –

+0

@EricKennyよ、わかりました。また、nil-coalescerとオプションのtypecastingを組み合わせることもできます。ニース!私はそれを最良の答えとして選ぶことができるように、あなたのコメントを答えにしてください。ありがとう! –

答えて

関連する問題