go interface 的筆記

miss201發表於2018-07-06

file
在底層,interface 作為兩個成員實現:一個型別和一個值。該值被稱為介面的動態值, 它是一個任意的具體值,而該介面的型別則為該值的型別。對於 int 值3, 一個介面值示意性地包含(int, 3)。
只有在內部值和型別都未設定時(nil, nil),一個介面的值才為 nil。特別是,一個 nil 介面將總是擁有一個 nil 型別。若我們在一個介面值中儲存一個 int 型別的指標,則內部型別將為 int,無論該指標的值是什麼:(*int, nil)。 因此,這樣的介面值會是非 nil 的,即使在該指標的內部為 nil。

不卑不亢,不慌不忙,這才是生活的模樣。

相關文章