面试题答案
一键面试package main
import (
"fmt"
)
// 自定义结构体
type CustomStruct struct {
Name string
}
func main() {
var data []interface{}
data = append(data, 10, "hello", CustomStruct{Name: "example"})
for _, item := range data {
switch value := item.(type) {
case int:
fmt.Printf("这是一个整数: %d\n", value)
case string:
fmt.Printf("这是一个字符串: %s\n", value)
case CustomStruct:
fmt.Printf("这是一个自定义结构体: %v\n", value)
default:
fmt.Println("未知类型")
}
}
}
在上述代码中,我们定义了一个包含多种类型数据的空接口切片 data
。然后通过 switch - type
语句对切片中的每个元素进行类型断言,从而区分不同的数据类型并进行相应的处理。switch - type
语句会根据 item
的实际类型执行对应的分支。如果类型不匹配任何分支,则执行 default
分支。