Maison > développement back-end > Golang > La structure Golang a-t-elle un opérateur de propagation ?

La structure Golang a-t-elle un opérateur de propagation ?

PHPz
Libérer: 2024-02-09 12:36:19
avant
514 Les gens l'ont consulté

golang 结构是否有扩展运算符

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.

Contenu de la question

a la structure suivante, où postinputcreatepost 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
}
Copier après la connexion

mais je ne voulais pas que createdatupdatedat 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)
}
Copier après la connexion

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
}
Copier après la connexion

Solution

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal