나는 다음 라인을 가로 질러왔다
hsb.s = max != 0 ? 255 * delta / max : 0;
무엇을 ?
하고 :
이러한 맥락에서 의미를?
답변
형식은 다음과 같습니다. condition
? value-if-true
: “then”및 “else”로 value-if-false
생각하십시오 .?
:
귀하의 코드는
if (max != 0)
hsb.s = 255 * delta / max;
else
hsb.s = 0;
답변
명확성을 위해 적절하게 괄호로 묶었습니다.
hsb.s = (max != 0) ? (255 * delta / max) : 0;
의미 중 하나를 반환
255*delta/max
최대 인 경우 = 00
최대 == 0 인 경우
답변
다음과 같이 대괄호로 쓸 때 약간 더 명확합니다.
hsb.s = (max != 0) ? (255 * delta / max) : 0;
그것이하는 일은 첫 번째 괄호 안의 부분을 평가하는 것입니다. 결과가 참이면? 뒤에 나오는 부분 그리고 :가 반환되기 전에. 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
답변
? : 속기 else {}
및 if(){}
문제입니다. 따라서 코드는 다음과 호환됩니다.
if(max != 0){
hsb.s = 225 * delta / max
}
else {
hsb.s = 0
}
답변
이것을 조심하십시오. -1! = true 및 -1! = false이지만 -1은 true로 평가됩니다. 날 믿어, 나는 그것이 일어난 것을 보았다.
그래서
-1 ? “진정한 측”: “거짓 측”
“진정한”평가