Maison  >  Article  >  développement back-end  >  Comment parcourir des chaînes en langage Go

Comment parcourir des chaînes en langage Go

青灯夜游
青灯夜游original
2023-01-13 15:57:105875parcourir

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 {
    ...
}

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 {
    ...
}

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

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
Paramètres Description
mapping La fonction de traitement pour chaque caractère de la chaîne.
s ficelle 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)
}

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!

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