Go Methods and Interfaces

tekkaman · · 2049 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Go Methods and Interfaces

1、Go does not have classes. However, you can define methods on struct types.

  The method receiver appears in its own argument list between the func keyword and the method name.

  

2、You can declare a method on any type that is declared in your package, not just struct types.

  However, you cannot define a method on a type from another package (including built in types).

  

3、Methods can be associated with a named type or a pointer to a named type.指针接收器与变量接口器是不一样的。变量接收器会有拷贝,而指针接收器没有拷贝。

  

4、interface由一系列方法组成。

  A value of interface type can hold any value that implements those methods.

  

5、A Stringer is a type that can describe itself as a string. The fmt package (and many others) look for this interface to print values.

    

6、类型通过实现那些方法来实现接口。 没有显式声明的必要;所以也就没有关键字“implements“。

  隐式接口解藕了实现接口的包和定义接口的包:互不依赖

  因此,也就无需在每一个实现上增加新的接口名称,这样同时也鼓励了明确的接口定义。

7、error也是一内置接口。As with fmt.Stringer, the fmt package looks for the error interface when printing values.

  

8、Functions often return an error value, and calling code should handle errors by testing whether the error equals nil.

  

9、Read接口。

  

  

10、Package http serves HTTP requests using any value that implements http.Handler:

    

11、Package image defines the Image interface:

    

参考:https://tour.golang.org/methods/8  

 


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:tekkaman

查看原文:Go Methods and Interfaces

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2049 次点击  
加入收藏 微博
上一篇:Go Concurrency
1 回复  |  直到 2000-01-01 00:00:00
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传