if (list != null || list.size() > 0) {

 ...

} else {

 ...

}


프로젝트중 이런 코드를 사용하는 것을 발견...

list의 null여부를 체크하고 있는데, 위의 코드는 list가 []로 선언되어 있으면, 뒤의 list.size() > 0 조건은 판단하지 않고, true영역의 코드를 실행 시킨다.

이미 알고는 있었지만, 이를 단축평가(short-circuit)라고 부르는지는 처음 알았다.

결과적으로,

OR연산자를 사용할 땐 true를 리턴할 가능성이 높은 조건을 첫 번째로 작성하고,

AND연산자에선 false를 리턴할 가능성이 높은 조건을 조건을 첫번째로 작성하면 좋다.


이를 이용해 이런식으로도 표현 가능


return name || "없으면 이것";


|| 로 묶여 있어서 앞의 name이 존재한다면 name을 return하고, 뒤의 조건은 신경쓰지 않는다.

name이 없으면 뒤의 string은 무조건 true이므로 "없으면 이것"을 반환한다.



+ Recent posts