2
나는 golang 비교적 새로운 해요, 내가 찾고 있어요 프로젝트는 패턴 이런 종류의 반복을 여러 번있다 : 나는 교체 할 경우/"캐스팅"인터페이스 기능은 golang에서 실제로 무엇을합니까?
package foo
type Foo interface {
Bar() int
}
type foo struct {
}
func (f *foo) Bar() int {
return 42
}
func New() Foo {
// why?
return Foo(&foo{})
}
이 return &foo{}
모든 것을 함께 마지막 함수의 반환 문으로 잘 작동을 나는 그것을 올바르게 이해한다면 그것은 오리 타이핑이라고 예상했다. Foo (...) 함수를 사용할 때의 요점은 무엇입니까? 유형을 함수로 사용하는 것은 int와 같은 내장 유형을 메서드가있는 유형으로 래핑 할 때 작동하는 것으로 보입니다. 저자의 의도에 대해 궁금합니다. 언어 사양으로 다루어지면 찾지 못했습니다.