Go编程语言规范
对于具有接口类型和类型T的表达式x,主要表达式
x.(T)断言x不为nil,并且x中存储的值的类型为T。符号x。(T)称为类型断言。
在特殊形式的赋值或初始化中使用的类型断言
v, ok = x.(T)v, ok := x.(T)var v, ok = x.(T)产生另一个无类型的布尔值。如果断言成立,则ok的值为true。否则为false,且v的值为T类型的零值。在这种情况下,不会发生运行时恐慌。C
r.(flate.Reader)是类型断言。例如,
func (z *reader) Reset(r io.Reader, dict []byte) error { if fr, ok := r.(flate.Reader); ok { z.r = fr } else { z.r = bufio.NewReader(r) } // more pre omitted ...}
r是类型
io.Reader的
interface。
fr, ok :=r.(flate.Reader)检查
r是否包含
io.Reader类型为的
flate.Reader。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)