golang学习的点点滴滴:接口
package main // 定义一个接口 // 有两个方法 // 注意:方法不能加func type IFile interface { Read(file string) (buf []byte) Write(file string, buf []byte) } type IReader interface { Read(file string) (buf []byte) } type IWriter interface { Write(file string, buf []byte) } // 定义一个结构体 // 通过下面定义的方法可以看出: // File同时实现了IFile IReader IWriter所有的方法 // 所以File实现了IFile 也实现了IReader和IWriter type File struct { } // 结构体中的方法 func (f *File) Read(file string) (buf []byte) { return nil } // 结构体中的方法 func (f *File) Write(file string, buf []byte) { } func main() { f := new(File) // File同时实现了IFile IReader IWriter所有的方法 // 所以File实现了IFile 也实现了IReader和IWriter // 所以这些转型都是符合语法的 var f1 IFile = f var f2 IReader = f var f3 IWriter = f f.Read("aa") f1.Read("bb") f2.Read("cc") // IWriter只定义了Write方法 f3.Write("dd", []byte {1,2}) }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。