之間的主要區別是什么:v = t.(aType) // type assertionv = aType(t) // type conversion我應該在哪里使用類型斷言或類型轉換?
1 回答

偶然的你
TA貢獻1841條經驗 獲得超3個贊
類型斷言斷言t
(接口類型)實際上是 aaType
并且t
將是aType
; 即包裹在t
接口中的那個。例如,如果你知道你var reader io.Reader
實際上是一個*bytes.Buffer
你可以做的var br *bytes.Buffer = reader.(*bytes.Buffer)
。
類型轉換將一種(非接口)類型轉換為另一種類型,例如 a var x uint8
to 和 int64 like var id int64 = int64(x)
。
經驗法則:如果您必須將具體類型包裝到接口中并希望恢復具體類型,請使用類型斷言(或類型切換)。如果您需要將一種具體類型轉換為另一種,請使用類型轉換。
- 1 回答
- 0 關注
- 235 瀏覽
添加回答
舉報
0/150
提交
取消