型別斷言有點像向下轉型,介面型別轉到具體的實現例項型別上
型別斷言是乙個使用在介面值上的操作。語法上它看起來像x.(t)被稱為斷言型別,這裡x表示乙個介面的型別和t表示乙個型別
package mainimport (
"fmt"
)//定義乙個介面
type person inte***ce
//定義乙個型別
type tsh struct
//實現介面的方法
func (tsh *tsh) say()
//測試方法
//傳遞的引數是person型別
func test(p person)
func main()
//傳入測試方法
test(&tsh)
}
golang 型別斷言
型別斷言是乙個使用在介面值上的操作 有時候,我們可能需要知道某個介面型別的實際型別,比如某個方法需要接收多種型別的資料並需做分別處理時,我們可以把形參設為空介面型別以接收任意型別的值,但是我們怎麼反向知道裡面實際儲存了的是哪個型別的物件呢?一種常用的方法是 comma ok 斷言 value,ok ...
Golang 型別斷言
需要的知識 inte ce x.t 檢查x的動態型別是否是t,其中x必須是介面值。直接使用 func main x 100 value1,ok x.int if ok value2,ok x.string if ok 需要注意如果不接收第二個引數也就是ok,這裡失敗的話則會直接panic,這裡還存在...
Go型別斷言
package main import fmt 型別斷言 type assertion 是乙個使用在介面值上的操作,用於檢查介面型別變數所持有的值是否實現了期望的介面或者具體的型別。如何進行型別斷言的判斷?1.使用if語句或者switch語句 2.依靠 value,ok x.t x 表示乙個介面的型...