열거형(enumeration, enum)
- 카테고리성 데이터, 명목형 데이터를 나타내기 위함
: 도시 - 서울, 부산, 인천, ...
이메일 종류 - 미분류, 스팸, 소셜, 비즈니스, ...
- 기본 값은 정수이지만 그리고 정수를 사용(연산)할 수는 있지만 권장하지 않음
Go에서 열거형 만들기
1) 모든 유효한 값을 나타내는 정수 기반의 타입 정의
2) 값의 집합을 만들기 위해 const 블록 사용
3) const 블록에서 1)에서 선언한 타입의 첫 번째 상수에 iota 지정
암묵적 인터페이스
: Go의 유일한 추상 타입
인터페이스의 목적/용도
- 스펙을 정의
- 인터페이스를 사용하려면 인터페이스의 요소를 완성/구현(implement)해야 함
- 이를 통해 타입의 안정성을 높이고 디커플링을 가능
interface 키워드
인터페이스 리터럴
- interface {
...
}
위 ...에는 인터페이스를 만족시키기 위한 구체적 타입에서 반드시 구현(implement)해야 할 메서드 시그니처 나열
Go에서 관례적으로 인터페이스 이름은 끝에 ‘er’을 붙인다
인터페이스는 모든 블록에서 선언 가능