golang的zlibreader.go文件中的“ r。(flate.Reader)”是什么意思?

golang的zlibreader.go文件中的“ r。(flate.Reader)”是什么意思?,第1张

golang的zlib / reader.go文件中的“ r。(flate.Reader)”是什么意思?

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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4908154.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存