2014-09-02 109 views
2

如何打印一个结构类型的名称,名称也就是这样我就可以将其打印语句,即像一个结构为一个字符串

type MyStruct struct { ... } 

func main() { 
    fmt.Println(MyStruct.className()) 
} 

如果这是可能的话,它被认为是一个缓慢的操作? (即反射)

+0

看起来像http://stackoverflow.com/q/20170275/6309 – VonC 2014-09-02 05:35:10

回答

7

例如,

package main 

import "fmt" 

type MyStruct struct{} 

func main() { 
    fmt.Printf("%T\n", MyStruct{}) 
} 

输出:

main.MyStruct 

fmt%T打印动词给出值的类型的一个的Go-语法表示。

Go fmt包使用reflect包进行运行时反射。