次のような構文を使用するコードを見たことがあります...
someValue = someBoolean ? valueOne : valueTwo;
または、このようなもの。
私はこれを使用したことがなく、それが何と呼ばれているのかわかりません。
誰かがそれを使用する方法を説明するか、それに関するリソースへのリンクを提供してください.
次のような構文を使用するコードを見たことがあります...
someValue = someBoolean ? valueOne : valueTwo;
または、このようなもの。
私はこれを使用したことがなく、それが何と呼ばれているのかわかりません。
誰かがそれを使用する方法を説明するか、それに関するリソースへのリンクを提供してください.
三項演算子です。
状態を評価しsomeBoolean
ます。
true の場合は、に渡しvalueOne
ますsomeValue
false の場合は、に渡しvalueTwo
ますsomeValue
それは次と等しい:
if(someBoolean)
{
someValue = valueOne;
}
else
{
someValue = valueTwo;
}
これは、三項演算子について説明する良いリンクです
これは三項演算子 ( ?: ) と呼ばれます。
1 ? 2 : 3
1が条件です。
2 は 1 が真のときに実行されます。
1 が false の場合、3 が実行されます。
類似: (以下は実行中のコードではありません。1、2、3 は、一部の式とステートメントのプレースホルダーのみを示しています。
if(1){ //condition
2 //true
}
else{
3 //false
}
次のように短縮できます。
int bigger;
(10<100) ? bigger=100 : bigger=10;
簡単に言えば:
int bigger = (10<100) ? 100 : 10 ;
ノート:
その優先順位は最も低く、if-else および switch case ステートメントよりもはるかに遅くなります。
ですternary operator
( としても知られていますconditional operator
)。このリンクで説明を見つけることができます。
基本的に、あなたの式は、someBoolean
true の場合は someValue が取得されvalueOne
、そうでない場合は取得されると言っていますvalueTwo
。
次のようになります。
if(someBoolean)
{
someValue = valueOne;
}
else
{
someValue = valueTwo;
}
これにより、コードの可視性が低下します。1 つの条件に依存する値を割り当てたい場合は、この演算子を使用することをお勧めします。
に固有の表現ではないことに注意してください。およびObjective-C
で使用できます。C
C++
割り当ての結果は、条件が true の場合は valueOne になり、条件が false の場合は valueTwo になります。
こちらのウィキペディアをご覧ください。他の言語にも当てはまります。スキップして C 構文の例を参照してください。
ユーザーが何らかの質問に答える必要があり、間違っていればビューの背景色を赤に、正しければ緑に変更するとします。
- (void)handleAnswer:(BOOL)correct {
UIColor *color = (correct) ? [UIColor greenColor] : [UIColor redColor];
self.view.backgroundColor = color;
}
以下と同じように動作します
if (someBoolean)
{
someValue = valueOne;
}
else
{
someValue = valueTwo;
}