2017-03-28 8 views
-2

誰も書き込みの利点を説明することができます??。可能であれば、下のコードスニペットでコードをどのように改善するか説明することは可能でしょうか?の目的スウィフトで

import Foundation 
var sampleString:String? 
print(sampleString ?? "Nil") 

ありがとうございます。

+2

何よりも優位? – Hamish

答えて

2

Appleドキュメントから:

ゼロ-合体演算子(?? b)はその場合、オプションAをアンラップ は値を含む、又はゼロである場合にbはデフォルト値を返します。 式aは、常にオプションの型です。式bは、aの内部に格納されている型と一致する必要があります。

sampleStringがnilの場合、 "Nil"というテキストを含むデフォルトの文字列が返されます。

1

私はこの状況では??それはコードサイズを減らすでしょうか?

??を使用しない場合は、あなたのコードは次のように表示されなければなりません:

import Foundation 
var sampleString:String? 
print(sampleString ?? "Nil") 

if sampleString != nil{ 
    print(sampleString) 
} 
else{ 
    print("Nil") 
} 
+1

あなたはone-liner( 'a == nil?a!:b'のような)として'?: '演算子を使うことができますが、もちろん' a ?? bは良く見えます。 – franiis

+0

@franiis実際に私は大ファンではありませんか?:オペレータですが、それでもうまくいくでしょう –

+0

私はまた、「??しかし、将来の訪問者にとっては、別の(非常に似通った)演算子とその使用方法を見る価値があります。 私は個人的に '?:'単純な 'if'よりも好きです(しばしば物事を混乱させることがありますが、コードはそれを使うのに十分シンプルです)。 – franiis

関連する問題