Enumeation
은 결국 특정 type에 대한 값을 지정한 이름으로 사용하겠다는 약속이다.
이러한 약속을 통해 코드를 좀 더 명확하고 구조화할 수 있다.
Golang
에서는 enum
type이 존재하지 않지만, 아래와 같이 라벨링을 해서 유사한 형태를 가져볼 수 있다.
1 |
|
위 코드에서 처럼, type
키워드를 이용해 라벨링할 타입을 생성한다.
만약 printEnum
function에 Eumeration 형태로 사용하고자 지정한EnumValue
가 아닌 다른 값이 들어올 경우 컴파일 에러가 발생한다.
당연하게도 type
이 다르기 때문이다. 마찬가지로 명시적인 타입의 정의 없이 값을 할당하여 변수를 생성하는 경우 타입 추론을 통해 타입이 정해지므로 이 경우에도 컴파일 에러가 발생한다.
1 |
|