l'éditeur php Xigua abordera une question sur le langage Golang dans cet article : existe-t-il un opérateur d'expansion pour les structures. Golang, en tant que langage de programmation moderne, possède de nombreuses fonctionnalités et fonctions puissantes, mais dans certains scénarios spécifiques, les développeurs peuvent rencontrer le besoin d'étendre la structure. Cet article présentera en détail les connaissances liées à l'expansion de la structure dans Golang et proposera des solutions. Si vous êtes intéressé par l’opérateur de spread structurel de Golang, veuillez continuer à lire cet article.
a la structure suivante, où postinput
是 createpost
sont les paramètres de la fonction.
type postinput struct { title string content string } type postinputwithtime struct { title string content string createdat time updatedat time }
mais je ne voulais pas que createdat
和 updatedat
soit exposé à l'utilisateur, je l'ai donc ajouté à la fonction comme indiqué ci-dessous.
func createpost(input postinput) { updatedinput = postinputwithtime{ title: input.title content: input.content createdat: time.now() updatedat: time.now() } db.insertone(updatedinput) }
Cela fonctionne bien, mais vous êtes curieux de savoir s'il existe une manière plus élégante de procéder ? Je sais qu'il est possible d'intégrer une structure au-dessus d'une autre structure, mais pas au niveau racine (comme l'opérateur de propagation javascript).
// something like this type PostInputWithTime struct { ...PostInput CreatedAt UpdatedAt }
Existe-t-il un opérateur de propagation de structure go [...] comme l'opérateur de propagation javascript [...] ?
Non.
(Vous devrez utiliser l'intégration, copier des valeurs ou implémenter une magie basée sur la réflexion, mais non, il n'y a pas de propagation.)
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!