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