2015-09-06 44 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爲假。

相關問題