728x90
메서드는 구조체에 속한 함수입니다.
일반 함수와는 다르게 '리비서'라는 것으로 구조체를 정의하여 사용하고 호출할 수 있습니다.
이는 GO에는 클래스라는 개념이 없어서 다른 언어와는 다른 특징입니다.
다른 부분은 함수와 동일하게 사용하면 됩니다.
// 메서드 정의
func (리시버) 메서드명(매개변수 매개변수타입) 반환타입 {
실행 코드
return 반환값
}
-------
type Calulator struct {
X int
}
func (c Calculator) add(y int) int {
return c.X + y
}
func main() {
calc := Calculator{10} // 구조체에 값을 넣어줍니다.
val := calc.add(15) // 메서드의 함수에 값을 넣어줍니다.
fmt.Println(val)
}
-------
// 실행 결과
$ go run ./main.go
25
리시버를 포인터로 지정
구조체를 포인터 타입으로 지정하면 구조체 속성의 값을 변경할 수 있습니다.
type Calulator struct {
X int
}
// 리비서를 포인터로 지정
func (c *Calculator) add(y int) {
c.X += y
}
func main() {
calc := Calculator{10}
calc.add(20)
fmt.Println(calc.X)
}
-------
// 실행 결과
$ go run ./main.go
30
728x90
'IT > GO' 카테고리의 다른 글
Go 언어 스터디 - 함수의 기능(가변인자) (0) | 2023.07.16 |
---|---|
Go 언어 스터디 - 함수의 기능(defer) (0) | 2023.07.16 |
GO 언어 스터디 - 인터페이스 (0) | 2023.07.15 |
Go 언어 스터디 - 함수 (0) | 2023.07.15 |