为了账号安全,请及时绑定邮箱和手机立即绑定

`go`中`switch`的求值序列

`go`中`switch`的求值序列

Go
慕妹3146593 2021-11-22 16:15:27
我正在通过阅读“Effective Go”来学习 Go 语言。我找到了一个关于类型切换的例子:var t interface{}t = functionOfSomeType()switch t := t.(type) {default:    fmt.Printf("unexpected type %T\n", t)     // %T prints whatever type t hascase bool:    fmt.Printf("boolean %t\n", t)             // t has type boolcase int:    fmt.Printf("integer %d\n", t)             // t has type intcase *bool:    fmt.Printf("pointer to boolean %t\n", *t) // t has type *boolcase *int:    fmt.Printf("pointer to integer %d\n", *t) // t has type *int}我的理解是switch从上到下评估案例并在匹配条件下停止。那么这个例子不是总是停留在default并打印“意外类型......”吗?
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

这个 Golang 教程

  • default如果其他case块都不匹配,则执行的代码块

  • default块可以是内的任何地方switch块,而不一定是最后的词汇顺序


查看完整回答
反对 回复 2021-11-22
  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信