知识卡片
空接口能装万物却无法使用
内容
一个不要求任何方法的接口——interface{}——会被所有类型自动满足,因为满足接口的门槛是”实现 它要求的方法”,而它什么都不要求。这让空接口可以像一个万能容器一样接住任意类型的值,fmt 包 里很多函数的参数正是这么声明的。发散:空接口不是一个”更强大”的类型,恰恰相反,它是接口能提供的最弱 契约——能装的东西越多,能保证的行为就越少,这也是为什么它只适合出现在少数”完全不关心类型、 只做。
参考来源
- 位置:《Head First Go语言程序设计》第11章《你能做什么:接口》(源文件:_epub-src/index_split_002.html)
- 结论依据:原文在该章节围绕“一个不要求任何方法的接口——interface{}——会被所有类型自动满足,因为满足接口的门槛是"实现它要求的…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。
- 原始内容:的方法。最常用的与Go值交互的方法是什么?通过它的方法。 在Go中,一个接口被定义为特定值预期具有的一组方法。你可以 把接口看作需要类型实现的一组行为。 使用interface关键字定义一个接口类型,后面跟着一个花括号,内 部含有一组方法,以及方法期望的参数和返回值。 任何拥有接口定义的所有方法的类型被称作满足那个接口。一个满 足接口的类…