[Go] golang x.,type 用法
golang x.(type) 用法
类型断言和类型判断 if 和 type-switch两种形式
使用类型断言断定某个接口是否是指定的类型
if这种简化形式:
if _,ok:=x.(T);ok{
}
type-switch 类型判断形式
类型断言使得相同接口的变量在不同的时刻表现出不同的行为,这就是多态的本质。
func MyPrintf(args ...interface{}) { for _, arg := range args { switch arg.(type) { case int: fmt.Println(arg, "is an int value.") case string: fmt.Println(arg, "is a string value.") case int64: fmt.Println(arg, "is an int64 value.") default: fmt.Println(arg, "is an unknown type.") } } }
在go-imap中看到使用
switch h := p.Header.(type) { case *mail.InlineHeader: // This is the message's text (can be plain-text or HTML) b, _ := ioutil.ReadAll(p.Body) log.Println("Got text: ", string(b)) case *mail.AttachmentHeader: // This is an attachment filename, _ := h.Filename() log.Println("Got attachment: ", filename) }
- 上一篇 »go是不是golang?
- 下一篇 »【Golang】关于Go中logrus的用法