Maison > développement back-end > Golang > Comment puis-je supprimer efficacement le caractère de nouvelle ligne d'une chaîne lue en Go ?

Comment puis-je supprimer efficacement le caractère de nouvelle ligne d'une chaîne lue en Go ?

Mary-Kate Olsen
Libérer: 2024-12-26 07:23:34
original
693 Les gens l'ont consulté

How Can I Efficiently Remove the Newline Character from a String Read in Go?

Extraction efficace de sous-chaînes dans Go

Lors du traitement des entrées depuis la console, il est courant de lire des lignes entières pour un traitement ultérieur. Cependant, le caractère de nouvelle ligne peut présenter un défi en utilisant bufio.ReadString(). Pour résoudre ce problème, certains ont suggéré de couper manuellement le caractère de nouvelle ligne.

input, _ := src.ReadString('\n')
inputFmt := input[0:len(input) - 2] + "" // Manual newline trimming
Copier après la connexion

Existe-t-il une solution plus élégante ?

Pour répondre à cette question, nous devons clarifier deux concepts clés dans Go :

  • Slices : Contrairement aux tableaux de style C, les tranches Go stockent intrinsèquement leur longueur en octets. Par conséquent, vous n'avez pas besoin de calculer explicitement la longueur avant le découpage.
  • Stockage des chaînes : Les chaînes Go ne se terminent pas par un caractère nul, il n'est donc pas nécessaire de supprimer un octet nul lors de l'extraction. sous-chaînes.

Avec ces concepts à l'esprit, l'approche suivante fournit une approche plus idiomatique et efficace solution :

input, _ := src.ReadString('\n')
inputFmt := input[:len(input) - 1]
Copier après la connexion

Cette version découpe simplement la chaîne d'entrée jusqu'au dernier caractère (en supposant qu'il s'agit d'un caractère d'un octet). Cela évite les manipulations inutiles de chaînes et garantit une extraction efficace des sous-chaînes.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal