더북(TheBook)

4.2.1 사용자 정의 타입의 종류

주로 구조체와 인터페이스를 정의할 때 사용자 정의 타입을 사용하지만, 기본 타입이나 함수 서명을 사용자 정의 타입으로 지정해서 쓰기도 한다.

 

기본 타입을 사용자 정의 타입으로 사용

현재 코드 문맥에 맞는 의미를 부여하기 위해 기본 타입을 사용자 정의 타입으로 정의한다.

▼ 기본 타입을 사용자 정의 타입으로 정의

type quantity int
type dozen []quantity
 
var d dozen
for i := quantity(1); i <= 12; i++ {
    d = append(d, i)
}
fmt.Println(d)

실행 결과

[1 2 3 4 5 6 7 8 9 10 11 12]

quantitydozen처럼 기본 타입을 기반으로 하여 만들어진 커스텀 타입은 기본 타입과 같은 방식으로 사용할 수 있다. 이를테면 슬라이스에 새로운 요소를 추가하는 내장 함수 append()type dozen []quantity로 정의한 사용자 정의 타입 dozen에 사용할 수 있다.

Note 사용자 정의 타입과 기본 타입 간의 타입 변환

기본 타입을 매개변수로 받는 함수에 사용자 정의 타입을 매개변수로 전달하려면 사용자 정의 타입을 기본 타입으로 변환해야 한다. 그리고 사용자 정의 타입을 매개변수로 받는 함수에 기본 타입을 매개변수로 전달하려면 기본 타입을 사용자 정의 타입으로 변환해야 한다.

type quantity int
 
func main() {
    var q quantity = 3
    display(int(q))
}
 
func display(i int){
    fmt.Print(i) // 3
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.