0
在圍棋標準庫裏有一些方式來美化打印對象成細末語法表示,例如,here'd如何漂亮打印值,代碼生成/語法表示
https://play.golang.org/p/hztlPEf1If
有沒有什麼辦法可以轉儲定義類型?如果不是,那麼停止使用此功能面臨的挑戰是什麼。
在圍棋標準庫裏有一些方式來美化打印對象成細末語法表示,例如,here'd如何漂亮打印值,代碼生成/語法表示
https://play.golang.org/p/hztlPEf1If
有沒有什麼辦法可以轉儲定義類型?如果不是,那麼停止使用此功能面臨的挑戰是什麼。
我寫了一點反射功能,它可以幫助你。請檢查:
package main
import (
"fmt"
"reflect"
)
type S struct {
A string
B int
c bool
d float64
e struct {
f int
}
}
func main() {
var s S
MagicPrint(&s)
}
func MagicPrint(t interface{}) {
typeOfT := reflect.TypeOf(t).Elem()
fmt.Println("type", typeOfT.Name(), " struct {")
for i := 0; i < typeOfT.NumField(); i++ {
f := typeOfT.Field(i)
fmt.Printf("%s %s\n", f.Name, f.Type)
}
fmt.Println("}")
}
謝謝你的例子,我想我會去滾動自己的解決方案(基於^),因爲找不到任何現有的lib做這個工作的更完整辦法。 –
你的意思是像傾倒的結構體,並獲得與名和字段也類型的所有字段?它可以使用反射來完成。 – Apin
@Apin應該是。忘了提及,我的場景正在嘗試基於現有類型(大部分時間,struct)來生成代碼。不知道是否有任何方便的做法,我覺得使用反射是可能的,但也是可以處理的重要細節。所以我想知道我是否錯過了現有的設施。 –
更好的是在你的問題上提及什麼樣的輸入以及你想要的輸出。 – Apin