类型断言 用于访问接口值所保存的底层具体值。
t := i.(T)
该语句断言接口值 i 保存了具体类型 T, 并将底层的 T 值赋给变量 t。
i
T
t
如果 i 并未保存 T,该语句会触发 panic。
要 测试 接口值是否保存了某个特定类型, 类型断言可以返回两个值:底层值 以及一个表示断言是否成功的布尔值。
t, ok := i.(T)
如果 i 保存了 T,那么 t 将是底层值,而 ok 将为 true。
ok
否则, ok 将为 false,而 t 将是类型 T 的零值, 并且不会发生 panic。
请注意,这种语法与从映射中读取值的语法很相似。