인터페이스간 임베딩도 되고
type Writer interface {
Write(p []byte) (n int, err error)
}
type Closer interface {
Close() error
}
type WriteCloser interface {
Writer
Closer
}
구조체에 인터페이스를 임베딩하는 거도 됩니다
type TailReader struct {
io.Reader
}
복붙 잘못해서 수정 ㅋ
인터페이스간 임베딩도 되고
type Writer interface {
Write(p []byte) (n int, err error)
}
type Closer interface {
Close() error
}
type WriteCloser interface {
Writer
Closer
}
구조체에 인터페이스를 임베딩하는 거도 됩니다
type TailReader struct {
io.Reader
}
복붙 잘못해서 수정 ㅋ
이미 구현된 걸 넣으면 되지
예를 들어 위의 예라면 저 구조체에 *os.File을 넣을 수도 있고 *bytes.Buffer를 넣을 수도 있고 os.Stdin을 넣을 수도 있지
그리고 임베딩 시킨 인터페이스의 기본 동작을 이용해서 새 동작을 만들면 되고
엔진만 갈아끼는 식으로 다양하게 써먹기 위함이라 생각하면 됨
그리고 두번째 리플 읽어보니 오해가 있는 것 같은데 저 TailReader가 io.Reader를 구현하는게 아니라 TailReader 안에 io.Reader를 구현한 무언가가 임베딩 되는 거임 ㅇㅇ
ㅇㅇ 함수에서 인자로 인터페이스 적혀있을 때와 마찬가지임