关于out.(file)这种语法怎么理解--out是io.Writer对象,file是一个interface?



func NewLogBackend(out io.Writer, prefix string, flag int) *LogBackend {
    if f, ok := out.(file); ok { //这里 out.(file)
        println(f)
        b.f = f
    }
    return b
}

type file interface {
    Fd() uintptr
}
阅读 3.3k
2 个回答

类型断言,判断out 能否转换成file,若是可以,则返回转换后的实例和true

类型断言,如果是file类型则执行大括号里内容。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题