Maison  >  Article  >  développement back-end  >  Comment faire string= en golang

Comment faire string= en golang

WBOY
WBOYoriginal
2023-05-10 10:13:06483parcourir

Dans Golang, le type de chaîne est immuable. Cela signifie qu'une fois qu'une chaîne est créée, elle ne peut pas être modifiée sur place, mais seule une nouvelle chaîne peut être créée. Si vous souhaitez modifier une chaîne, vous devez la convertir en un type de variable, tel que []byte ou []rune, avant de pouvoir la modifier.

Présentons quelques méthodes permettant au type de chaîne d'obtenir un effet variable "similaire".

Méthode 1 : Convertir la chaîne en type []byte ou []rune

Si vous souhaitez modifier un certain caractère de la chaîne, vous pouvez d'abord convertir la chaîne en un type de variable, tel que []byte ou [] type de runes. Ceci peut être réalisé en utilisant les fonctions de conversion []byte ou []rune.

Exemple de code :

str := "Hello, Golang!"
bytes := []byte(str)
bytes[7] = 'W'
str = string(bytes)
fmt.Println(str)

Le code ci-dessus convertit la chaîne en type []byte, puis remplace le 7ème caractère « H » par « W », et enfin reconvertit le résultat en chaîne et le génère.

La même opération peut également être réalisée en utilisant le type []rune :

str := "Hello, Golang!"
runes := []rune(str)
runes[7] = '界'
str = string(runes)
fmt.Println(str)

Cette fois nous remplaçons le 7ème caractère par le caractère chinois "jie".

Il convient de noter que puisque les chaînes sont stockées en mémoire avec un codage UTF-8, vous devez faire attention aux problèmes de codage lorsque vous utilisez le type []byte pour modifier un caractère dans la chaîne.

Méthode 2 : utilisez la fonction Remplacer dans le package de chaînes

Si vous souhaitez simplement remplacer certains caractères dans la chaîne, vous pouvez utiliser la fonction Remplacer dans le package de chaînes.

Exemple de code :

str := "Hello, Golang!"
str = strings.Replace(str, "Golang", "world", -1)
fmt.Println(str)

Le code ci-dessus remplace "Golang" dans la chaîne par "world".

Le troisième paramètre de la fonction Remplacer est le nombre de remplacements, -1 signifie remplacer toutes les correspondances.

Méthode 3 : utilisez le type Buffer dans le package bytes

Si vous devez effectuer plusieurs opérations sur la chaîne comme l'épissage de chaînes, vous pouvez utiliser le type Buffer dans le package bytes.

Exemple de code :

var buffer bytes.Buffer
buffer.WriteString("Hello")
buffer.WriteString(" ")
buffer.WriteString("Golang!")
fmt.Println(buffer.String())

Le code ci-dessus utilise le type Buffer pour implémenter l'opération d'épissage des chaînes.

Méthode 4 : utiliser le type strings.Builder

Après la version 1.10 du langage go, le type string.Builder a été ajouté pour implémenter l'épissage et la modification de chaînes.

Exemple de code :

var builder strings.Builder
builder.WriteString("Hello")
builder.WriteByte(',')
builder.WriteString("Golang!")
builder.WriteRune('界')
fmt.Println(builder.String())

Le code ci-dessus utilise le type strings.Builder pour implémenter les opérations d'épissage et de modification de chaînes, et fournit également la méthode WriteRune pour les caractères Unicode.

Méthode 5 : utilisez le type []byte et les fonctions de série Append dans le package strconv

Si vous devez convertir d'autres types de données en chaînes et avez besoin d'opérations hautes performances et à faible mémoire, vous pouvez utiliser le type []byte et strconv Append les fonctions de la série dans le package.

Exemple de code :

var data []byte
data = strconv.AppendBool(data, true)
data = strconv.AppendInt(data, 1234, 10)
data = strconv.AppendFloat(data, 3.14, 'f', 2, 64)
data = strconv.AppendQuote(data, "Hello, Golang!")
str := string(data)
fmt.Println(str)

Le code ci-dessus utilise respectivement les fonctions AppendBool, AppendInt, AppendFloat et AppendQuote dans le package strconv pour convertir les données de type bool, int, float et string en données de type []byte, et enfin les convertit en implémentation Strings. l'opération d'épissage de plusieurs types de données.

Il convient de noter que lorsque vous utilisez la série de fonctions Append, vous devez allouer manuellement un espace tampon suffisant.

Résumé :

Voici quelques méthodes pour rendre le type de chaîne variable. Vous pouvez choisir différentes méthodes en fonction de besoins spécifiques. Il convient de noter que lorsque vous utilisez ces méthodes, écrivez le code avec soin pour éviter des problèmes inattendus.

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:
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