0w0

You Don't Need Loops 번역 후, 감상

You Don't Need Loops를 읽고 You Don't Need Loops 한국어판을 만들었다.

글에 "if 대신 삼항식을 사용하는 이유" 대목을 보았는데,

우선 떠오른 생각은 꼬리재귀를 하기 위함아닌가? 이런 생각이 있었는데,

아쉽게도 설명은 없이 찾아보라 해서 찾아보기로 하였다.

결론부터 말하면 어딜가든 이유는 제각각이다.

오히려 삼항대신 if를 써야한다 하는 도 있다.

이 사람은 읽기 어렵다는 이유로 이러한 주장을 했다.

실제로 글쓴이가 쓴 예시를 읽어보면 뭔 말인지 알 수가 없다.

f(a ? g(a, (x ? b : c) + y) : b, c);

물론 보통은 저렇게안 쓰며, 써서도 안 된다.

flag ? (subFlag ? a : b) : c;
let aOrB = subFlag ? a : b;

flag ? aOrB : c;

이렇게 쓰는 게 좋다.

flag ? (1 + 2) _ 3 - 4 : 5 % 6 _ 7

이것도 역시

let a = (1 + 2) \* 3 - 4

let b = 5 % 6 \* 7

flag ? a : b

그런데도 불구하고, 왜 삼항을 써야하는가 궁금했다.

여기서 힌트를 얻을 수 있었다.

글쓴이는 3가지 이점이 있다 주장하는데,

물론 여기도 반론은 있었다.

우선 읽기 힘들다는 이유와, 컴파일러가 어차피 if든 삼항이든 결국 if로 변환한다는 이유였다.

(이 댓글을 쓴 분은 읽기 편함이란 코드 길이가 짧거나, 문장이 짧은 것이 아니라 구조와 경험의 문제라 지적한다.)

물론 여기도 반론의 반론이 있어서,

다만 이것만으로는 내가 궁금했던 것이 해결된 것 같은 기분이 들지 않았으므로, 더 찾아 갱신해야겠다.