2015-09-06 52 views
-2

包装类型()中究竟做了什么,我应该什么时候使用它?例如。 blah.(*int)什么是封装()中的类型,我应该在什么时候使用它? Golang

+2

除非您[阅读文档](https://golang.org/ref/spec#Type_assertions),否则不应使用任何语法。说真的,在提出基本的语法问题之前,阅读规范并参加[Go Tour](https://tour.golang.org)。 [Go标签](http://stackoverflow.com/tags/go/info)也有许多其他资源的列表。 –

回答

4

这是一个type assertion。类型断言用于提取接口类型中的值作为其他类型。

表达式blah.(*int)声称blah中的值的类型为*int。如果断言成立,则表达式的值是作为*int存储在blah中的值。如果断言不成立,那么表达式恐慌。

类型断言的特殊形式可在分配被用来测试断言:

ip, ok := blah.(*int) 

如果嗒嗒的值是*int,则该值被存储在ipok被设定为真正。否则,ip设置为零值,并且ok为假。

相关问题