go语言中获取结构体名的主要方法有:使用reflect包获取类型信息,再使用type.name()方法获取结构体名。使用fmt.sprintf()函数格式化值,其中%t格式指定符将被类型名称替换。
如何获取 Go 中结构体名
在 Go 语言中,获取结构体名的主要方法有两种:
1. 使用 reflect 包
reflect 包提供了用于反射和操作 Go 值的信息。要使用此方法,使用 reflect.TypeOf(s) 获取结构的类型,然后使用 Type.Name() 方法获取结构名称。
package main
import (
"fmt"
"reflect"
)
type MyStruct struct {
Name string
Age int
}
func main() {
s := MyStruct{"John", 30}
t := reflect.TypeOf(s)
fmt.Println(t.Name())
}
2. 使用 fmt.Sprintf()
也可以使用 fmt.Sprintf() 函数来获取结构体的名字。此方法通过一个格式字符串来格式化值,其中 %T 格式指定符将被类型名称替换。
package main
import (
"fmt"
)
type MyStruct struct {
Name string
Age int
}
func main() {
s := MyStruct{"John", 30}
fmt.Printf("%Tn", s)
}