我需要根據(jù)所反映的值的類型做不同的事情。value := reflect.ValueOf(someInterface)我想做一些具有以下效果的事情:if <type of value> == <type1> { do something} else if <type of value> == <type2> { do something}這類似于 go 代碼中的類型切換。
1 回答

嚕嚕噠
TA貢獻1784條經(jīng)驗 獲得超7個贊
如果您要遍歷結(jié)構(gòu)體的字段,則可以使用類型開關(guān)根據(jù)字段的類型執(zhí)行不同的操作:
value := reflect.ValueOf(s)
for i := 0; i < value.NumField(); i++ {
field := value.Field(i)
if !field.CanInterface() {
continue
}
switch v := field.Interface().(type) {
case int:
fmt.Printf("Int: %d\n", v)
case string:
fmt.Printf("String: %s\n", v)
}
}
https://play.golang.org/p/-B3PWMqWTo
- 1 回答
- 0 關(guān)注
- 174 瀏覽
添加回答
舉報
0/150
提交
取消