[Go] golang x.(type) 用法
2023-02-18 15:41:34 时间
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) }
相关文章
- 杂想之一个C++内存泄露案例
- Git常用命令
- Gridea Hexo Hugo 等 git push 同步到多个仓库
- 解决GoLand无法Debug
- 三天上手Go以及实战Gin+Gorm
- Typecho 迁移到 Hugo
- GitHub Actions 自动部署 Hexo 脚本
- Hugo .GitInfo 的替代方案
- Gitea 安装备忘
- 一个整数+1,攻破了Linux内核!
- 我在Github上发现了一个好东西!
- 如何将 Power BI 模板化,一键构建出一切
- PowerBI 四象限通用分析模式系列之一
- 微软宣布:PowerBI 已经与 Office 整合,一切更简单,变革又来了
- 业财融合用PowerBI怎么搞?一个案例一本书用二十四个模块告诉你答案
- Power BI 大换皮肤,迎来更新
- Power BI 量本利营亏平衡分析模型
- PowerBI 统一数据建模最佳实践 - 框架篇
- 使用Django快速搭建reportServer
- go-redis版本不一致导致CPU使用率问题