Maison > développement back-end > Golang > le corps du texte

Comment faire string= en golang

WBOY
Libérer: 2023-05-10 10:13:06
original
378 Les gens l'ont consulté

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

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

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

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

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

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

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!