亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang:動態地將接口??轉換為類型化變量

Golang:動態地將接口??轉換為類型化變量

Go
米琪卡哇伊 2021-09-10 21:18:07
在 go 中,是否可以以某種方式動態轉換變量?例如,如果一個簡單的演員表是:var intAge  = interfaceAge.(int)如果我事先不知道 age 是 int 怎么辦?一種簡單的寫法是var x = getType()var someTypeAge = interfaceAge(.x)有沒有辦法實現這樣的目標?反射包提供了一些在運行時確定或轉換類型的方法 - 但我找不到像上面提到的任何東西(適用于所有類型的通用方案)。
查看完整描述

1 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

不,你不能。Go 是一種靜態類型語言。變量的類型是在編譯時確定的。


如果你想動態確定type一個interface{}你可以使用類型切換:


var t interface{}

t = functionOfSomeType()

switch t := t.(type) {

default:

    fmt.Printf("unexpected type %T", t)       // %T prints whatever type t has

case bool:

    fmt.Printf("boolean %t\n", t)             // t has type bool

case int:

    fmt.Printf("integer %d\n", t)             // t has type int

case *bool:

    fmt.Printf("pointer to boolean %t\n", *t) // t has type *bool

case *int:

    fmt.Printf("pointer to integer %d\n", *t) // t has type *int

}


查看完整回答
反對 回復 2021-09-10
  • 1 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號