duck typing
我真是刚的不像话 · · 1032 次点击 · · 开始浏览像鸭子走路,像鸭子叫,那么就是鸭子
描述事物外部行为而非内部结构
严格说go属于结构化类型系统,类似duck typing
python c++ 中duck typing (只要retriever 具有get方法即可)但是编译运行才知道错误
def download(retriever r):
r.get("www.baidu.com")
java 中传入参数必须要实现某个接口,不是duck typing
接口定义
download (使用者) retriever(使用者)
golang中接口由使用者定义
typpe assertion
n, p := reader.Shape()
point := p.(*shp.Point)
x := point.X
y := point.Y
接口变量里有(1、实现者类型 2、实现着值或者指针)
任何类型 interface{}
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
像鸭子走路,像鸭子叫,那么就是鸭子
描述事物外部行为而非内部结构
严格说go属于结构化类型系统,类似duck typing
python c++ 中duck typing (只要retriever 具有get方法即可)但是编译运行才知道错误
def download(retriever r):
r.get("www.baidu.com")
java 中传入参数必须要实现某个接口,不是duck typing
接口定义
download (使用者) retriever(使用者)
golang中接口由使用者定义
typpe assertion
n, p := reader.Shape()
point := p.(*shp.Point)
x := point.X
y := point.Y
接口变量里有(1、实现者类型 2、实现着值或者指针)
任何类型 interface{}