2016-06-14 12 views
0

オプションのバインドは、オプションに値が含まれているかどうかを調べる方法で、その値が一時的な定数または変数として使用できるようにする方法です。オプションバインドとは、ここで「バインディング」という言葉が正確に何を意味していますか?

var possibleNumber: Int? = 123 

if let actualNumber = Int(possibleNumber){ 
    print("\"possibleNumber\" has an integer value of \(actualNumber)") 
} else { 
    print("\"possibleNumber\" could not be converted to an integer") 
} 

質問バインディングは、一時的な定数/変数に有効な値を代入する作用を意味するのでしょうか?私。それらの2つのものを一緒に「束縛する」?

答えて

1

バインディングは、有効な値を一時定数/変数に割り当てる動作を意味しますか?私。それらの2つのものを一緒に「束縛する」?

はい。基本的に、変数名への値の代入はバインディングです。名前に値をバインドします。だから、でもこれはバインディング:

let x = 1 

if letと特別なのは結合値は安全に開封できるオプション(つまり、それはnilではない)である場合にのみ行われることです。安全にラップ解除できない場合は、ラップ解除されず、バインドも行われません(条件が失敗します)。

+0

「バインディング」はオプションではなく、バインディングでもあります。あなたの説明のためにたくさんありがとう – SLN

+0

これは単なるバインディング以上のもので、メモリ割り当て(スタック上)と初期化;) – Alexander

+0

@matt OMGどのように愚かですか?私は以前この質問をしました。私は静かなイントロスペクションが必要です。 – SLN

1

既存のデータ/コードに参照する新しい識別子(名前)を関連付けると、その識別子には"binding"となります。

if letを使用した場合などの「条件付きバインディング」もあります。条件付きで何かがある場合のみ、オプションの内容をバインドします。

+0

そして私の答えに追加する:私の変数識別子は高水準プログラミング言語のプログラマとして私たちのためだけに存在します。コードがコンパイルされると、それらは取り除かれ、データはそのメモリアドレスによって直接参照されます。したがって、オプションのバインディングはおそらくコンパイルされたコード出力を変更することさえしません。型の安全性を検証するためだけに存在します – Alexander

0

オプションのバインディング(letの場合)を使用して、オプションに値が含まれているかどうかを確認します。値が存在する場合、その値をifステートメント内にのみ存在する一時的なローカル定数にバインドします。

関連する問題