面试题答案
一键面试实现思路
- 使用
reflect.ValueOf
获取接口值的reflect.Value
。 - 通过
Kind
方法判断实际类型。 - 根据不同类型,使用
reflect.Value
的相应方法获取具体值。
代码示例
package main
import (
"fmt"
"reflect"
)
func main() {
var i interface{}
i = 10 // 假设存储的是int类型
value := reflect.ValueOf(i)
switch value.Kind() {
case reflect.Int:
fmt.Println(value.Int())
case reflect.String:
fmt.Println(value.String())
default:
fmt.Println("Unsupported type")
}
}