1
나는 문서를 읽고 있는데 왜 반환 유형이 실제로 error
일 때 포인터 (&errorString{text}
)가 반환되어야하는지 이해하지 못합니까?반환 형식이 실제로 오류 일 때 포인터를 반환해야하는 이유는 무엇입니까?
내 이해는 error
이고 인터페이스는 errorString
이므로 인터페이스가 구현되어 있으므로 errorString
도 반환해도 괜찮습니다 (사실은 그렇지 않습니다).
// New returns an error that formats as the given text.
func New(text string) error {
return &errorString{text}
}
Errorstring이 구현
// errorString is a trivial implementation of error.
type errorString struct {
s string
}
func (e *errorString) Error() string {
return e.s
}
감사합니다 , Arjan. 네가 한 말처럼 작동한다. 내가 알아 차 렸던 한 가지는 당신이 말한대로 구현 되었다면 직접 포인터를 반환하거나 포인터 작업을 반환한다는 것입니다. 왜 그런지 알고 있습니까? – Mingyu
형식에 대한 메서드 집합이 정의되는 방법은 다음과 같습니다. http://golang.org/ref/spec#Method_sets – Arjan
* T 형식은 * T 또는 T로 정의 된 수신기를 사용하여 메서드를 호출 할 수 있습니다. – Arjan