MST

星途 面试题库

面试题:Go反射在基础类型转换中的应用

在Go语言中,已知有一个 `interface{}` 类型的变量,它实际存储的是一个基础类型(比如 `int` 或 `string`),请使用反射将其转换为具体的基础类型并打印出来。说明实现思路并给出代码示例。
31.0万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 使用 reflect.ValueOf 获取接口值的 reflect.Value
  2. 通过 Kind 方法判断实际类型。
  3. 根据不同类型,使用 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")
    }
}