【发布时间】:2016-12-16 15:31:07
【问题描述】:
如果我想知道一个变量是否是字符串类型,我可以做一个类型断言:
S, OK:= value.(string)
如果 value 是 string 类型,则 OK 为真,S 为原始值。
但是这种类型断言不适用于自定义字符串类型;例如:
type MyString string
对于这种类型的变量,上面的类型断言返回false表示OK。
如何确定一个变量是字符串类型还是等价类型,而无需为每个等价类型单独断言?
【问题讨论】:
-
你不能。如您所知,您可以测试“beeing string”,如
value.(string),或者您可以使用value.(MyString)测试“being MyString”,但您不能同时测试两者。或者您使用类型开关。再次完成 Tour of Go ,尤其是关于类型开关的章节:tour.golang.org/methods/16 和 ff。
标签: go