Go 接口
定义与实现
go
type Writer interface {
Write([]byte) (int, error)
}
// 隐式实现,不需要 implements 关键字
type FileWriter struct{}
func (w FileWriter) Write(data []byte) (int, error) {
return len(data), nil
}空接口
go
func printAny(v interface{}) {
fmt.Println(v)
}类型断言
go
var w Writer = FileWriter{}
if fw, ok := w.(FileWriter); ok {
fmt.Println(fw)
}常用接口
| 接口 | 方法 |
|---|---|
io.Reader | Read(p []byte) (n int, err error) |
io.Writer | Write(p []byte) (n int, err error) |
fmt.Stringer | String() string |
error | Error() string |