3 진 연산자를 과도하게 사용하고, 때로는 매우 간단한 if 문으로 대체합니다. 이와Java의 삼항 연산자를 사용하면 변수를 자체에 할당한다는 의미는 무엇입니까?
if (foo != null) {
bar = foo;
}
: 예를 들어, 난 그냥 내 자신이 같은 것을 대체 발견
bar = (foo == null) ? bar : foo;
가 하나 더 좋은 읽는 취향의 문제이지만, 궁금 :
- 이 경우 3 진 버전의 성능이 저하됩니까?
- 여기에 3 종 사용에 대한 다른 이유가 있습니까?
여기 악화 될 수있는 성능을 보라 이유는 내가 컴파일러가 foo
이 null
때의 원을 최적화 할 수없는 가정이다. 따라서 bar
의 값이 다시 동일한 값으로 설정되어 일부 CPU 시간이 낭비 될 수 있습니다.이 경우 간단한 if
문이 그 지점에 도달하지 않습니다. 그러나 컴파일러와 실행에 대한 나의 지식은 제한되어 있으므로 의문이 남는다. 당신은 스타일에 대해 걱정 한 경우
특정 조건에서 'bar = bar'로 '붕괴'되는 개념은 나에게 이상합니다. 이전의 (if 문으로) 더 장황하지만 훨씬 더 읽기 쉽고 명확합니다. 내 $ 0.02 – Taylor
당신은 이미 당신의 질문에 대답했습니다. 그것은 "오버 헤드"이며 삼항 연산자의 사용법이 적당하지 않습니다. – Andrew
다른 변수에'i = i'를 대입하는 것과 다른 점은 무엇입니까? –