MST

星途 面试题库

面试题:Go中如何正确使用空接口实现类型断言并处理不同类型数据

在Go语言中,空接口可以存储任意类型的数据。请编写一段代码,定义一个空接口类型的切片,向切片中添加不同类型的数据(如int、string、自定义结构体),然后使用类型断言遍历切片,分别处理不同类型的数据,并打印出相关信息。
33.5万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

// 定义自定义结构体
type Person struct {
    Name string
    Age  int
}

func main() {
    var data []interface{}
    data = append(data, 10, "hello", Person{Name: "John", Age: 30})

    for _, item := range data {
        switch v := item.(type) {
        case int:
            fmt.Printf("整型: %d\n", v)
        case string:
            fmt.Printf("字符串: %s\n", v)
        case Person:
            fmt.Printf("自定义结构体: Name: %s, Age: %d\n", v.Name, v.Age)
        default:
            fmt.Printf("未知类型\n")
        }
    }
}