MST

星途 面试题库

面试题:Go语言中如何利用空接口实现类型断言及类型开关

在Go语言中,给定一个空接口类型的变量 `interface{} varEmpty`,假设其内部实际存储了一个 `int` 类型的值,如何通过类型断言获取这个 `int` 值?同时,请用类型开关实现判断该空接口变量内部存储值可能为 `int`、`string`、`float64` 类型,并分别打印不同类型对应的值。
12.3万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

通过类型断言获取 int

package main

import (
    "fmt"
)

func main() {
    var varEmpty interface{}
    varEmpty = 10 // 假设存储了int类型的值

    if value, ok := varEmpty.(int); ok {
        fmt.Printf("通过类型断言获取到的int值: %d\n", value)
    } else {
        fmt.Println("类型断言失败,不是int类型")
    }
}

用类型开关判断并打印不同类型的值

package main

import (
    "fmt"
)

func main() {
    var varEmpty interface{}
    varEmpty = 10 // 这里可更改不同类型测试

    switch value := varEmpty.(type) {
    case int:
        fmt.Printf("值为int类型,值为: %d\n", value)
    case string:
        fmt.Printf("值为string类型,值为: %s\n", value)
    case float64:
        fmt.Printf("值为float64类型,值为: %f\n", value)
    default:
        fmt.Println("不是int、string、float64类型")
    }
}