해당 주제는 리시버다.
설명하기에 앞서, 이번 코드에서는 구조체를 사용하고 있고, 이를 알고 있다는 전제하에 설명한다.
리시버는 특정 객체로부터 해당되는 함수를 정의하는 것이다. 즉 쉽게 말하면 특정 객체만 접근이 가능하다는 것이다.
따라서 아래에 그림에서 명시된 Add함수는 (n Number)리시버를 사용하여 Number 객체만 접근이 가능하도록 하였다.
[ 예시 ]
package main
import "fmt"
type Number struct {
A int
B int
}
func (n Number) Add(a, b int) int {
return a + b
}
func main() {
number := Number{A: 1, B: 2}
result := number.Add(number.A, number.B)
fmt.Println(result) // 3
}
[ 주의사항 ]
리시버를 정의할때는 동일 package 내부에 선언을 해야 한다. 외부에 선언하여 참조를 시도하려고 하면, 컴파일이 되지 않는다. 자세한 예제와 설명은 글을 다시 작성할 예정이다. 우선 참고자료로 아래에 링크를 띄어두겠다.
'Programming > Go' 카테고리의 다른 글
Go언어 맵(map) 편 (0) | 2021.02.26 |
---|---|
Go언어 구조체(struct) 편 (0) | 2021.02.26 |
Go언어 예외처리(panic, recover) 편 (0) | 2021.02.26 |
Go언어 "import cycle not allowed" 편 (0) | 2021.02.25 |
Go언어 [초간단] 명령어 Os.Args 편 (0) | 2021.02.24 |