l'éditeur php Strawberry est là pour vous présenter une technique pratique, à savoir "Allez, désorganisez les touches majuscules". Cette technique peut nous aider à programmer plus rapidement et plus efficacement. Lorsque nous écrivons du code, nous devons souvent commenter ou décommenter un morceau de code, et ajouter ou supprimer manuellement des symboles de commentaire peut être relativement fastidieux. Cependant, en utilisant la méthode « Allez, décommenter les touches en majuscules », nous pouvons rapidement commenter ou décommenter le code, ce qui améliore considérablement notre efficacité de travail. Ci-dessous, apprenons ensemble la méthode de fonctionnement spécifique !
La clé suivante est toujours en minuscule ? Chapitre 923
Je recherche le moyen le plus simple de désorganiser le yaml non structuré en clés golangcasing. Détails--
Jetez un oeil
https://go.dev/play/p/nihdqorpek1
c'est-à-dire
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
. Un commentaire de suivi indiquait qu'ils "passaient de gopkg.in/yaml.v3 à sigs.k8s.io/yaml" , mais en lisant la documentation de sigs.k8s.io/yaml, je pense qu'ils ont encore besoin de comprendre la structure de yaml et le mécanisme de traduction doivent être définis à l'avance.
Existe-t-il un moyen simple de désorganiser le yaml non structuré en clés majuscules/golangcasing ? Quel est le moyen le plus simple ? Si aucun package go ne fournit une telle fonctionnalité prête à l'emploi, existe-t-il des plugins/rappels qui me permettraient de faire facilement la traduction moi-même ?
Vous pouvez déclarer un type de clé personnalisé qui implémente l'interface yaml.unmarshaler
.
Des choses comme ça :
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 }
Ensuite, utilisez-le comme clé de la carte.
m := make(map[MyKey]any)
https://www.php.cn/link/e18cfe46b96c30852b565e561152d055
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!