0

誰かが説明できますかinactive ? @"inactive": @"active"

? : ブール条件付き構造 (間違った用語) のようですが、よくわかりません。名前がわからないので調べてもわかりません。

次のように見えます:

someBooleanValue ? false の場合は 、コロンの前にあるものを使用します。そうでない場合は、後のものを使用します

フォーマットトークンとして使用する文字列を決定するために使用されていることがわかります(以下のコードで)。私はちょうどこれが何を知りませんか?: ビットが呼び出され、どのような制限/注意/誤用がある可能性があります。

rilly(そして、文明的な方法でフォーマットするのが難しいObjC のようではありません)

    UIAlertView* av = [[UIAlertView alloc] initWithTitle:@"Hey" 
                                             message:[NSString 
                                    stringWithFormat:@"While %@, I received a local notification: %@",
                                                      inactive ? @"inactive": @"active", n.alertBody] 
                                            delegate:nil 
                                   cancelButtonTitle:@"OK" otherButtonTitles:nil];
[av show];
4

5 に答える 5

2

この ?: のことを条件演算子または三項演算子と呼びます。

単純な条件を表しています

if ( CONDITION )
    x = a;
else
    x = b;

に翻訳することができます

x = CONDITION ? a : b

そこから、おそらく達成/理解しようとしている機能を導き出すことができます。おそらく通常の if/else-if/else 構造の代わりに使用できますが、「割り当て関連のアクション」から三項演算子を使用するプログラミングは不適切であると見なされることに注意してください。

そのウィキペディアのページでは、さまざまなプログラミング言語で使用される条件演算子のさまざまな例を見つけることができます。これも確認してください。三項演算子のページです。

Obs: 三項演算子は必ずしも条件式ではなく、3 つの引数を取る任意の演算子であることがわかります。ほとんどのプログラミング言語では、唯一の三項演算子は inline-if です...まあ、それは通常呼ばれるものです。

于 2012-04-20T03:20:23.787 に答える
1

これは条件付き演算子と呼ばれ、三項演算子の一種です(よく知られている二項 a+b演算子または単項演算 子とは対照的に!flag)。

条件演算子は、条件を取得して評価し、その結果に応じて 2 番目または 3 番目のオペランドを返します。

于 2012-04-20T02:58:48.390 に答える
1

詳細については、こちらをご覧ください。

この演算子を使用すると、単純な が多数if含まれる場合にコードの長さを大幅に短縮できます。

于 2012-04-20T03:00:40.593 に答える
0

これは三項演算子ですが、逆にします。ブール値が true の場合はコロンの前の処理を行い、そうでない場合はコロンの後の処理を行います。

于 2012-04-20T03:00:11.690 に答える
0

これは三項演算子と呼ばれ、説明したとおりに機能します。

表現true の場合の値: false の場合の値。

たとえば、次のような場合に使用して、if - else を回避できます。

int maxValue = a > b ? a : b;

編集: @dasblinkenlightは正しいです。あなたが話している演算子は、実際には条件演算子と呼ばれ、一種の三項演算子です。

于 2012-04-20T03:01:02.090 に答える