【发布时间】:2015-12-01 22:15:37
【问题描述】:
在 () 中包装一个类型究竟做了什么,我应该什么时候使用它?例如。 blah.(*int)
【问题讨论】:
-
在read the documentation for it 之前,您不应使用任何语法。说真的,在询问基本语法问题之前,请阅读规范并使用Go Tour。 Go tag 还包含许多其他资源的列表。
标签: go
在 () 中包装一个类型究竟做了什么,我应该什么时候使用它?例如。 blah.(*int)
【问题讨论】:
标签: go
这是一个type assertion。类型断言用于将接口类型中的值提取为其他类型。
表达式blah.(*int) 断言blah 中值的类型是*int。如果断言成立,则表达式的值是存储在blah 中的值,作为*int。如果断言不成立,则表达式恐慌。
可以在赋值中使用一种特殊形式的类型断言来测试断言:
ip, ok := blah.(*int)
如果 blah 中的值为*int,则该值存储在ip 中并且ok 设置为true。否则,ip 设置为零值,ok 为 false。
【讨论】: