このコード行はどういう意味ですか?
label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;
と私?
を:
混乱させます。
このコード行はどういう意味ですか?
label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;
と私?
を:
混乱させます。
これは C の三項演算子です (Objective-C は C のスーパーセットです)。
label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;
意味的に同等です
if(inPseudoEditMode) {
label.frame = kLabelIndentedRect;
} else {
label.frame = kLabelRect;
}
最初の要素のない 3 項 (例: variable ?: anotherVariable
) は、(valOrVar != 0) ? valOrVar : anotherValOrVar
三項演算子または条件演算子です。その基本的な形式は次のとおりです。
condition ? valueIfTrue : valueIfFalse
値が選択された場合にのみ評価される場所。
簡単に言えば、ロジックは次のようになります
(condition) ? {code for YES} : {code for NO}
Barry Wark の優れた説明に基づいています...
三項演算子の重要な点は、if-else では使用できない場所で使用できることです。ie: 条件またはメソッド パラメータ内。
[NSString stringWithFormat: @"Status: %@", (statusBool ? @"Approved" : @"Rejected")]
...これは、プリプロセッサ定数の優れた用途です。
// in your pch file...
#define statusString (statusBool ? @"Approved" : @"Rejected")
// in your m file...
[NSString stringWithFormat: @"Status: %@", statusString]
これにより、if-else パターンでローカル変数を使用および解放する必要がなくなります。すごい!
これは通常の三項演算子です。疑問符の前の部分が true の場合は、コロンの前の部分を評価して返します。それ以外の場合は、コロンの後の部分を評価して返します。
a?b:c
のようなものです
if(a)
b;
else
c;
これは C の一部であるため、Objective-C 固有ではありません。if
声明への翻訳は次のとおりです。
if (inPseudoEditMode)
label.frame = kLabelIndentedRec;
else
label.frame = kLabelRect;
これは、if-then-else ステートメントの短い形式です。次のコードと同じ意味です。
if(inPseudoEditMode)
label.frame = kLabelIndentedRect;
else
label.frame = kLabelRect;
if/else ステートメントのような三項演算子です。
if(a > b) {
what to do;
}
else {
what to do;
}
三項演算子では、次のようになります。条件が true の場合の処理: false の場合の処理。
(a > b) ? what to do if true : what to do if false;
int padding = ([[UIScreen mainScreen] bounds].size.height <= 480) ? 15 : 55;
意味
int padding;
if ([[UIScreen mainScreen] bounds].size.height <= 480)
padding = 15;
else
padding = 55;
皆さんもおっしゃっていた通り、条件演算子の表現方法です
if (condition){
true
}
else {
false
}
三項演算子の使用(condition)? true:false
追加情報を追加するために、swift では を使用してそれを表す新しい方法があり??
ます。
let imageObject: UIImage = (UIImage(named: "ImageName")) ?? (initialOfUsername.capitalizedString).imageFromString
似ているのはどれですか
int a = 6, c= 5;
if (a > c)
{
a is greater
} else {
c is greater
}
と同等です
if (a>c)?a:c
==> に等しいif (a>c)?:c
代わりに?:
使用できるの??
は迅速です。