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

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

PHPz
PHPzavant
2024-02-09 12:36:19390parcourir

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
}

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)
}

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
}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer