Go语言中的接口、协程与并发编程
1. 基于令牌的XML解码
在某些类型开关(type switch)的单类型 case 块中,变量 x 的类型与该 case 相同。例如,在 bool 类型的 case 中, x 的类型为 bool ;在 string 类型的 case 中, x 的类型为 string 。在其他所有 case 中, x 的类型为开关操作数的(接口)类型,在这个例子中是 interface{} 。当多个 case 需要执行相同的操作时,如 int 和 uint ,类型开关可以很方便地将它们组合在一起。
sqlQuote 函数可以接受任何类型的参数,但只有当参数的类型与类型开关中的某个 case 匹配时,函数才能正常执行完毕;否则,它会抛出一个 “unexpected type” 错误信息。尽管 x 的类型是 interface{} ,但我们可以将其视为 int 、 uint 、 bool 、 string 和 nil 的判别联合(discriminated union)。
encoding/
Go语言接口与并发编程详解
超级会员免费看
订阅专栏 解锁全文
133

被折叠的 条评论
为什么被折叠?



