duck typing

像鸭子走路,像鸭子叫,那么就是鸭子
描述事物外部行为而非内部结构
严格说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{}


发表评论

电子邮件地址不会被公开。 必填项已用*标注