Maison > développement back-end > Golang > Comment utiliser les mots-clés new, make et append des fonctions Golang

Comment utiliser les mots-clés new, make et append des fonctions Golang

WBOY
Libérer: 2023-05-16 08:17:05
original
1305 Les gens l'ont consulté

Golang est un langage de programmation avec une efficacité de développement élevée, une vitesse d'exécution rapide et des capacités de traitement simultanées élevées. Il est largement utilisé dans la programmation réseau, le développement de serveurs, le cloud computing et d'autres domaines. Dans le processus de programmation Golang, new, make et append sont des mots-clés que nous utilisons souvent, et apprendre à les utiliser correctement nous rendra plus à l'aise pour écrire du code efficace et robuste.

Cet article présentera en détail l'utilisation de new, make et append dans Golang pour aider les lecteurs à mieux maîtriser ces mots-clés.

1. Nouveau mot-clé

new est une fonction intégrée, sa fonction est d'allouer un espace mémoire sur le tas et de renvoyer l'adresse de l'espace. Autrement dit, new renvoie un pointeur de type pointant vers la valeur zéro d'une valeur.

Généralement, nous utilisons la nouvelle fonction pour allouer l'espace mémoire d'une structure, comme suit :

package main

import "fmt"

type Person struct {
    Name string
    Age int
}

func main() {
    p := new(Person)
    fmt.Println(p.Name, p.Age)
}
Copier après la connexion

Le résultat de sortie est :

"" 0
Copier après la connexion

Comme vous pouvez le voir sur le résultat de sortie, l'espace mémoire de la structure alloué à l'aide de la nouvelle fonction Les champs sont définis sur des valeurs nulles. Il est à noter que la nouvelle fonction alloue uniquement de l'espace mémoire et n'initialise pas automatiquement l'espace mémoire alloué.

2. Make password

make est également une fonction intégrée, mais sa fonction est légèrement différente de celle de la nouvelle fonction. La fonction de make est de créer une tranche, une carte ou un canal et de renvoyer une valeur de ce type.

Le découpage fait référence à une séquence d'éléments de longueur variable du même type. L'utilisation du découpage peut gérer l'espace mémoire plus efficacement. Le code suivant montre l'utilisation de la fonction make pour créer une tranche de chaîne contenant 3 éléments :

slice := make([]string, 3)
Copier après la connexion

Lors de la création d'une tranche, vous pouvez spécifier sa capacité via le deuxième paramètre. Par exemple :

slice := make([]string, 3, 5)
Copier après la connexion

La tranche de chaîne créée ici a une longueur de 3 et une capacité de 5. Il convient de noter que lors de l'utilisation de make pour créer une tranche, le système initialisera l'espace mémoire nouvellement alloué et initialisera tous les éléments qu'il contient à zéro.

En plus du découpage, la fonction make peut également créer des cartes et des canaux. Voici comment les utiliser :

  1. Créer un mappage

Le mappage fait référence à un ensemble de structures clé-valeur, où chaque élément est constitué d'une clé unique et d'une valeur correspondante. Vous pouvez facilement créer des mappages à l'aide de la fonction make, comme suit :

m := make(map[string]string)
Copier après la connexion

Le mappage créé à l'aide de la fonction make a été initialisé et peut être utilisé directement.

  1. Créer un canal

Channel est une méthode d'échange de données simultanée, ce qui est très important dans Golang. L'utilisation de la fonction make pour créer un canal peut être obtenue en spécifiant le type de l'élément de canal, comme suit :

ch := make(chan int)
Copier après la connexion

Lors de la création d'un canal, vous pouvez également définir la taille du tampon en spécifiant le deuxième paramètre :

ch := make(chan int, 10)
Copier après la connexion

3. Le append mot-clé

append est également une fonction intégrée qui ajoute une ou plusieurs valeurs à la fin d'une tranche et renvoie la tranche mise à jour. La syntaxe de la fonction

append est la suivante :

append(slice []type, elems ...type) []type
Copier après la connexion

où, slice représente la tranche à ajouter et elems représente la valeur à ajouter à la tranche. Il convient de noter que elems est un paramètre variable et que n'importe quel nombre de valeurs peut être transmis.

Ce qui suit est un exemple d'utilisation de la fonction append pour ajouter dynamiquement des éléments à une tranche :

package main

import "fmt"

func main() {
    var slice []int
    for i := 0; i < 10; i++ {
        slice = append(slice, i)
        fmt.Println(slice)
    }
}
Copier après la connexion

Le résultat de sortie est :

[0]
[0 1]
[0 1 2]
...
Copier après la connexion

Comme le montre le résultat de sortie, chaque fois que la fonction append est appelée, un nouveau L’élément sera ajouté à la fin de la tranche.

Il est à noter que si le nombre d'éléments à ajouter est supérieur à l'espace restant de la tranche, la fonction d'ajout réattribuera l'espace mémoire et copiera les données d'origine dans le nouvel espace mémoire. Par conséquent, lorsque vous utilisez la fonction d'ajout, vous devez essayer d'éviter une capacité de tranche insuffisante pour éviter des pertes de performances.

Résumé

Cet article présente en détail l'utilisation des mots-clés new, make et append dans Golang En apprenant l'utilisation de ces mots-clés, nous pouvons mieux maîtriser la syntaxe de base de Golang et écrire du code efficace et robuste. Dans les projets réels, nous devons utiliser ces mots-clés de manière appropriée en fonction des besoins spécifiques pour rendre le code plus élégant et efficace.

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!

Étiquettes associées:
source:php.cn
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