回答:
それの形式は次のとおりcondition
です。value-if-true
:を「then」および「else」とvalue-if-false
考えてください。?
:
あなたのコードは
if (max != 0)
hsb.s = 255 * delta / max;
else
hsb.s = 0;
addition
は、前後の式で動作する2項演算子と同様に、3項演算子です(例:1 + 2プラスは1と2で動作します)、または否定は単項演算子(例:-x) xの値は否定されます)。
これは、次のように角かっこで書くと、おそらく少しわかりやすくなります。
hsb.s = (max != 0) ? (255 * delta / max) : 0;
最初の括弧内の部分を評価します。結果がtrueの場合、?の後の部分 :が返される前。falseの場合、:に続くものが返されます。
? :
これは三項演算子ではないですか?
var x= expression ? true:false
?:は、else {}
およびif(){}
問題の省略形です。だからあなたのコードはこれと交換可能です:
if(max != 0){
hsb.s = 225 * delta / max
}
else {
hsb.s = 0
}
これに注意してください。-1!= trueおよび-1!= falseですが、-1はtrueと評価されます。私を信じて、私はそれが起こるのを見てきました。
そう
-1?「真側」:「偽側」
「真の側面」と評価される
Infinity
(ゼロ除算が原因で)に設定することを避けているように見えます。