私は次の行に出くわしました
hsb.s = max != 0 ? 255 * delta / max : 0;
このコンテキストで?
と:
はどういう意味ですか?
明確にするために適切に括弧で囲んで、
hsb.s = (max != 0) ? (255 * delta / max) : 0;
どちらかを返すことを意味
255*delta/max
if max!= 00
if = = 0の場合これは、次のように角かっこで記述すると、おそらく少し明確になります。
hsb.s = (max != 0) ? (255 * delta / max) : 0;
最初の括弧内の部分を評価します。結果がtrueの場合、?の後の部分そして:が返される前。 falseの場合、:に続くものが返されます。
hsb.s = max!= 0? 255 *デルタ/最大:0;
?は三項演算子で、ifと組み合わせて次のように機能します。
!=は等しくないことを意味します
したがって、この行の長い形式は
if (max != 0) { //if max is not zero
hsb.s = 255 * delta / max;
} else {
hsb.s = 0;
}
? :
は三項演算子ではありませんか?
var x= expression ? true:false
?:は、else {}
およびif(){}
の問題の省略形です。あなたのコードはこれと交換可能です:
if(max != 0){
hsb.s = 225 * delta / max
}
else {
hsb.s = 0
}