接口的比较性,具体规则为:
- 动态类型值为
nil
的接口变量总是相等的。
- 如果只有 1 个接口为
nil
,那么比较结果总是 false
。
- 如果两个接口都不为
nil
,且接口变量具有相同的动态类型和动态类型值,那么两个接口是相同的。
- 如果接口存储的动态类型值是不可比较的,那么在运行时会报错。
1. nil 接口变量
未赋初值的接口类型变量的值为 nil
,这类变量也就是 nil
接口变量,我们来看这类变量的内部表示输出的例子:
func printNilInterface() {
var i