Avatar ·

如何在 Go 中确定变量或对象的类型:新手指南

你好!我刚开始学习 Go,遇到了一个问题。在其他语言中,比如 Python 或 JavaScript,我可以使用 type() 或 typeof 在运行时轻松检查变量类型。但在 Go 中,我找不到简单的方法来做这件事。 这是一个例子:我写了一个接受 interface{}(空接口)的函数,它需要根据不同的类型进行不同的处理。假设我有这样的代码: ```go package main import "fmt" func processData(data interface{}) { // 我怎么知道 data 是什么类型? fmt.Println("收到数据:", data) } func main() { processData(42) processData("hello") processData([]int{1, 2, 3}) } ``` 我希望 processData 函数能表现不同:如果是 int — 输出数字,如果是字符串 — 输出其长度,如果是切片 — 输出元素数量。但我不知道如何在运行时确定类型。我听说过 reflect 包,但它看起来复杂,而且据说很慢。有没有更简单的方法?还是说必须用 reflect?