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

Comment parcourir des chaînes en langage Go

青灯夜游
Libérer: 2023-01-14 10:43:52
original
5892 Les gens l'ont consulté

Méthode de traversée de chaînes : 1. Utilisez l'instruction "for range" pour parcourir, la syntaxe "for key, value := range str {...}" 2. Utilisez la fonction Map() du package de chaînes pour parcourir , la syntaxe "trings" .Map(func(rune), original string)", où le paramètre "func(rune)" est une fonction de rappel utilisée pour traiter chaque caractère de la chaîne.

Comment parcourir des chaînes en langage Go

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

Méthodes de parcours de chaînes dans le langage Go

Méthode 1 : Utiliser l'instruction for range

La structure for range est une structure itérative unique du langage Go et est très utile dans de nombreuses situations pour. Range peut parcourir des tableaux, des tranches, des chaînes, des cartes et des canaux. La syntaxe de for range est similaire à l'instruction foreach dans d'autres langages. La forme générale est :

for key, val := range coll {
    ...
}
Copier après la connexion

Il convient de noter que val est toujours l'index correspondant dans la collection. Copie de valeur, elle est donc généralement uniquement en lecture seule et toute modification qui y est apportée n'affectera pas les valeurs d'origine de la collection. Une chaîne est une collection de caractères (ou runes) codés Unicode, elle peut donc également être utilisée pour itérer des chaînes :

for pos, char := range str {
    ...
}
Copier après la connexion

Chaque caractère runique et chaque index sont en correspondance biunivoque dans la boucle for range, et il peut Reconnaît automatiquement les caractères codés Unicode selon les règles UTF-8.

Le code suivant montre comment parcourir une chaîne :

package main
import (
	"fmt"
)
func main() {
	var str = "hello 你好"
	for key, value := range str {
		fmt.Printf("key:%d value:0x%x\n", key, value)
	}
}
Copier après la connexion

Le résultat du code est le suivant :

Comment parcourir des chaînes en langage Go

Le type réel de la valeur de la variable dans le code est le type rune, et son impression en hexadécimal est l'encodage. du personnage.

Méthode 2 : utilisez la fonction strings.Map()

Pendant le processus de développement, nous devons souvent traiter chaque caractère d'une chaîne en conséquence. Dans le langage Go, des chaînes sont fournies. une telle fonction.

func Map(mapping func(rune) rune, s string) string
Copier après la connexion
ParamètresDescription
mappingLa fonction de traitement pour chaque caractère de la chaîne.
sficelle originale.

Valeur de retour :

  • Renvoie la chaîne traitée.

Explication :

  • Mappez chaque caractère de la chaîne s. Le mappage est une fonction anonyme qui accepte un paramètre de type rune et renvoie un paramètre de type rune.

Exemple 1 : Parcourir la chaîne et décaler chaque caractère de la chaîne d'un

package main
import (
	"fmt"
	"strings"
)
func strEncry(r rune)rune{
	return r+1
}
func main() {
	//使用 strings.Map() 函数,实现将一个字符串中的每一个字符都后移一位
	strHaiCoder := "HaiCoder"
	mapStr := strings.Map(strEncry, strHaiCoder)
	fmt.Println("mapStr =", mapStr)
}
Copier après la connexion

Comment parcourir des chaînes en langage Go

Analyse :

  • Nous définissons une variable de type chaîne strHaicoder, puis nous utilisons la chaîne The strings.Map () traite chaque caractère de la chaîne à l'aide de la fonction strEncry et utilise print pour imprimer le résultat final. La fonction

  • strEncry implémente la fonction d'en ajouter un au code ASCII d'un caractère, c'est-à-dire de reculer le caractère d'un bit, donc la chaîne que nous transmettons est "HaiCoder", qui devient finalement "IbjDpefs".

【Recommandations associées : Tutoriel vidéo Go, Enseignement de la programmation

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