유니버스 블록 내에 선언된 어떤 식별자이든 절대로 재정의되지 않도록 매우 조심해야한다. 모
르고 재정의를 했다면, 프로그램이 의도하지 않는 결과를 낼 수 있을 것이다. 운이 좋다면, 컴파
일 오류로 나타날 것이다. 그렇지 않았다면 프로그램의 문제를 찾기 위해 엄청난 노력을 쏟아 부
어야 할지 모른다.
이런 잠재적으로 파괴적인 것들이 린팅 도구들에 의해 검출되길 바랄지도 모른다. 하지만 그렇
지 못한 경우가 많다.
shadow
도구 조차도 유니버스 블록의 식별자를 섀도잉 한 것은 검출하지
못한다.
4.2
if
문
Go
에서
if
문은 다른 프로그래밍 언어에서
if
문과 매우 비슷하다. 익숙한 구조이기 때문에
혼란을 걱정하지 않고 앞선 예제 코드에 사용했다. [예제
4
-
5
]에서 조금 더 복잡한 경우를 살
펴보자.
예제
4-5
if
와
else
n := rand.Intn(10)
if n == 0 {
fmt.Println(“That’s too low”)
} else if n > 5 {
fmt.Println(“That’s too big:”, n)
} else {
105
4
장
블록, 섀도, 제어 구조
fmt.Println(“That’s ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.