可通过 fmt.Sprintf("%T", value) 确定变量类型,或使用反射包中的 reflect.TypeOf 函数。此外,还可以使用类型断言来判断变量是否属于特定类型,但需要 ok 来检查转换的成功。

如何判断 Go 中的变量类型
在 Go 中判断变量类型的最直接方法是使用 fmt.Sprintf("%T", value)。fmt.Sprintf 函数将 value 转换为字符串并返回它的类型名称。例如:
package main
import "fmt"
func main() {
var s string = "hello"
var i int = 10
var f float32 = 3.14
fmt.Println(fmt.Sprintf("%T", s)) // "string"
fmt.Println(fmt.Sprintf("%T", i)) // "int"
fmt.Println(fmt.Sprintf("%T", f)) // "float32"
}输出:
string int float32
还可以使用反射包中的 reflect.TypeOf 函数来获取变量的类型:
立即学习“go语言免费学习笔记(深入)”;
无论从何种情形出发,在目前校长负责制的制度安排下,中小学校长作为学校的领导者、管理者和教育者,其管理水平对于学校发展的重要性都是不言而喻的。从这个角度看,建立科学的校长绩效评价体系以及拥有相对应的评估手段和工具,有利于教育行政机关针对校长的管理实践全过程及其结果进行测定与衡量,做出价值判断和评估,从而有利于强化学校教学管理,提升教学质量,并衍生带来校长转变管理观念,提升自身综合管理素质。
package main
import (
"fmt"
"reflect"
)
func main() {
var s string = "hello"
var i int = 10
var f float32 = 3.14
fmt.Println(reflect.TypeOf(s)) // "string"
fmt.Println(reflect.TypeOf(i)) // "int"
fmt.Println(reflect.TypeOf(f)) // "float32"
}输出相同。
此外,还可以使用类型断言来判断变量是否属于特定类型:
package main
import "fmt"
func main() {
var v interface{} = 10
if str, ok := v.(string); ok {
fmt.Println(str) // 不会被执行
}
if num, ok := v.(int); ok {
fmt.Println(num) // 10
}
}只有当 v 的值是指定类型时,才会设置 ok 为 true,并且可以访问该类型的值。否则,ok 将为 false。









