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
Mary-Kate Olsenoriginal
2024-12-26 07:23:34695parcourir

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

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]

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!

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