php小編草莓在這裡為大家介紹一種實用的技巧,那就是"Go,解組為大寫鍵"。這個技巧可以幫助我們更快速、有效率地進行程式設計工作。當我們在編寫程式碼時,經常需要對一段程式碼進行註釋或取消註釋,而手動新增或刪除註釋符號會相對繁瑣。但是,透過使用"Go,解組為大寫鍵"的方式,我們可以快速地對程式碼進行註釋或取消註釋,大大提升了我們的工作效率。下面,就讓我們一起來了解具體的操作方法吧!
後續key總是小寫? 第923章
我正在尋找將非結構化 yaml 解組為 golangcasing 鍵的最簡單方法。詳情--
看看
https://go.dev/play/p/nihdqorpek1
即,
package main import ( "fmt" "log" "gopkg.in/yaml.v3" ) var data = ` a: Easy! b: c: 2 d: [3, 4] ` // Note: struct fields must be public in order for unmarshal to // correctly populate the data. type T struct { A string B struct { RenamedC int `yaml:"c"` D []int `yaml:",flow"` } } func main() { m := make(map[interface{}]interface{}) err := yaml.Unmarshal([]byte(data), &m) if err != nil { log.Fatalf("error: %v", err) } fmt.Printf("--- m:\n%v\n\n", m) d, err := yaml.Marshal(&m) if err != nil { log.Fatalf("error: %v", err) } fmt.Printf("--- m dump:\n%s\n\n", string(d)) }
m
中的小寫鍵。 一個後續評論說他們「正在從gopkg.in/yaml.v3 切換到sigs.k8s.io/yaml」,但正在閱讀sigs.k8s.io/yaml 的文檔,我覺得他們還是需要要了解yaml的結構,而且還需要事先定義好翻譯機制。
是否有任何簡單的方法可以將非結構化 yaml 解組為大寫/golangcasing 鍵?最簡單的方法是什麼?如果沒有 go 套件提供此類開箱即用的功能,那麼它們中是否有任何插件/回調可以讓我自己輕鬆地進行翻譯?
您可以宣告實作 yaml.unmarshaler
介面的自訂金鑰類型。
類似這樣的事情:
type mykey string func (k *mykey) unmarshalyaml(n *yaml.node) error { var s string if err := n.decode(&s); err != nil { return err } *k = mykey(strings.toupper(s)) return nil }
然後將其用作地圖的鍵。
m := make(map[MyKey]any)
//m.sbmmt.com/link/e18cfe46b96c30852b565e561152d055
以上是Go,解組為大寫鍵的詳細內容。更多資訊請關注PHP中文網其他相關文章!