Programming Language/Go
[Go] 타입 & 메서드
SdardewValley
2021. 11. 13. 22:00
반응형
Go는 상태를 표현하는 '타입'과 동작을 표현하는 '메서드'를 분리하여 정의한다. 타입과 메서드의 명확한 연결고리는 없다.
사용자 정의 타입과 메서드
사용자 정의 타입
기본 타입 외의 사용자가 직접 정의한 타입
- 일반적으로 구조체와 인터페이스를 사용자 정의 타입으로 사용한다
- 기본 타입이나함수 signature을 사용자 정의 타입으로 사용하기도 한다
메서드
사용자 정의 타입과 함수를 바인딩시키는 방식으로 정의한 것
func (리시버명 리시버타입) 메서드명 (매개변수) (반환값 혹은 반환타입) {
...
}
함수를 정의하는 것에 리시버가 추가되었다. 메서드를 호출시 리시버 값이 메서드에 전달되어 메서드에서 리시버 값을 사용할 수 있다.
리시버 (receiver)
타입과 동작을 연결하기 위해서 사용
Item은 상태를 나타내고, Cost는 동작을 나타낸다. Cost 함수를 보면 앞에 receiver은 Item이라고 되어 있다.