Pendant le processus de programmation, il est souvent nécessaire d'échapper à certains caractères spéciaux pour obtenir l'effet souhaité. Pour les développeurs Golang, l’échappement des chaînes est également l’une des compétences essentielles.
Golang fournit des fonctions d'échappement intégrées, telles que fmt.Printf() et strconv.Quote(), etc. Ces fonctions nous permettent d'échapper facilement aux chaînes. Examinons ensuite de plus près la fonction d’échappement de Golang. La fonction
fmt.Printf() est l'une des fonctions d'échappement de caractères les plus courantes dans Golang. En utilisant des caractères d'échappement, nous pouvons afficher certains caractères spéciaux dans la console. Par exemple, nous pouvons utiliser n pour imprimer le caractère de nouvelle ligne dans la console pour envelopper la ligne.
package main import "fmt" func main() { fmt.Printf("Hello\nWorld") }
L'exemple de code ci-dessus affichera ce qui suit :
Hello World
fmt.Printf() et quelques autres caractères d'échappement couramment utilisés, tels que t pour le caractère de tabulation, r pour le retour chariot, etc. Nous pouvons voir tous les caractères d'échappement dans la [Documentation officielle](https://golang.org/pkg/fmt/).
Une autre fonction d'échappement de chaîne courante est strconv.Quote(). Cette fonction peut échapper une chaîne dans une chaîne entourée de guillemets doubles.
package main import ( "fmt" "strconv" ) func main() { fmt.Println(strconv.Quote(`"Go is awesome!"`)) }
Le résultat de sortie du code ci-dessus est :
"\"Go is awesome!\""
Cette fonction convertit la chaîne "Go is Awesome!"
en ""Go is Awesome!""
, où les guillemets doubles sont définis. "Go is awesome!"
转换为了""Go is awesome!""
,其中转义了双引号。
与前面的函数类似,strconv.QuoteToASCII()也可以将一个字符串转义成一个被双引号括起来的字符串。不同之处在于,这个函数可以将非ASCII字符转换为其对应的转义序列。
package main import ( "fmt" "strconv" ) func main() { fmt.Println(strconv.QuoteToASCII("Golang是一个牛逼的编程语言!")) }
上述代码输出结果为:
"Golang\u662f\u4e00\u4e2a\u725b\u903c\u7684\u7f16\u7a0b\u8bed\u8a00\uff01"
这个函数将字符串Golang是一个牛逼的编程语言!
转换为了"Golangu662fu4e00u4e2au725bu903cu7684u7f16u7a0bu8bedu8a00uff01"
,其中每个非ASCII字符均被转换为其对应的转义序列,例如中文字符被转换为u
开头的Unicode码。
类似于strconv.QuoteToASCII()函数,strconv.QuoteToGraphic()也可以将一个字符串转义成一个被双引号括起来的字符串。不同之处在于,这个函数将非可打印ASCII字符转换为其对应的转义序列。
package main import ( "fmt" "strconv" ) func main() { fmt.Println(strconv.QuoteToGraphic("这个字符串中有不可打印字符\x1f")) }
上述代码输出结果为:
"这个字符串中有不可打印字符\u001f"
字符串中的不可打印字符x1f
被转换为了u001f
rrreee
Le résultat de sortie du code ci-dessus est : 🎜rrreee🎜Cette fonction convertit la chaîneGolang est un langage de programmation génial !
Converti en "Golangu662fu4e00u4e2au725bu903cu7684u7f16u7a0bu8bedu8a00uff01"
, où chaque caractère non-ASCII est converti en sa séquence d'échappement correspondante, par exemple, les caractères chinois sont convertis en commençant par u
Unicode code. 🎜🎜strconv.QuoteToGraphic()🎜🎜Semblable à la fonction strconv.QuoteToASCII(), strconv.QuoteToGraphic() peut également échapper une chaîne dans une chaîne entourée de guillemets doubles. La différence est que cette fonction convertit les caractères ASCII non imprimables en séquences d'échappement correspondantes. 🎜rrreee🎜Le résultat de sortie du code ci-dessus est : 🎜rrreee🎜Le caractère non imprimable x1f
dans la chaîne est converti en u001f
. 🎜🎜Résumé🎜🎜Dans Golang, la fonction d'échappement est très pratique, elle peut nous aider à gérer différents types de caractères spéciaux. Dans cet article, nous avons examiné en détail les fonctions d'échappement intégrées fmt.Printf(), strconv.Quote(), strconv.QuoteToASCII() et strconv.QuoteToGraphic(). Ces fonctions nous permettent d'utiliser les chaînes plus facilement pendant le processus de programmation et d'améliorer l'efficacité 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!