
210
러닝 Go
NOTE
_ 타입 스위치의 목적은 이미 존재하는 변수를 새로운 변수로 파생시키는 것이기 때문에, 전환되는
변수를 같은 이름의 변수로(
i
:=
i
.(
type
)
)할당하는 것은 관용적이고 섀도잉이 좋게 쓰이는 몇 안되는 것
중 하나이다. 주석문의 가독성을 높이기 위해, 이 책의 예제에서는 섀도잉을 사용하지 않았다.
새로운 변수의 타입은 일치하는
case
문에 의존적이다. 인터페이스가 연관된 타입이 없다는
것을 보기 위해
case
중 하나에
nil
을 사용할 수 있다. 하나의
case
에 하나 이상의 타입을 나
열하면, 새로운 변수는
interface
{}
타입이 된다. 스위치 문과 마찬가지로 어떠한 타입과도
일치하지 않는 경우에 처리를 위한
default
문을 가질 수 있다. 그 외 나머지는 새로운 변수는
case
문에서 일치하는 타입이 된다.
TIP
기본 타입을 알 수 없을 때, 리플렉션을 사용할 필요가 있다.
14
장에서 리플렉션을 자세히 잘 살펴보도록 하자.
7.12
타입 단언과 타입 스위치를 아껴 사용하기
인터페이스 변수로부터 구체 구현을 꺼낼 수 있는 편리한 방법이지만 이런 기술들은 드물게 사
용하도록 해야 한다. 대부분의 경우, 파라미터가 제공된 타입이거나 다른 타입이 될 수 있는 반
환 값을 처리한다. 그렇지 않다면, 함수의
API
는 해당 작업을 ...