Estoy intentando leer una línea completa desde la consola (incluidos los espacios en blanco), y luego procesarla. Usando bufio.ReadString, el carácter de nueva línea se lee conjuntamente con la entrada, por lo que le ocurrió el siguiente código para recortar el carácter de nueva línea:Extracción de subcadenas en Go
input,_:=src.ReadString('\n')
inputFmt:=input[0:len(input)-2]+"" //Need to manually add end of string
¿Hay una manera más idiomática para hacer esto? Es decir, ¿ya hay una biblioteca que se encarga del byte nulo final al extraer las subcadenas por usted?
(Sí, ya sé que ya hay una manera de leer una línea sin el carácter de nueva línea en go readline -> string pero estoy buscando más elegante para la manipulación de cadenas.)
Ni siquiera necesita el 0 (o el :), 's = s [: len (s) -1]' funcionará. – uriel
Muchas gracias por aclarar; parece que había dos caracteres en blanco al final de la cadena devueltos por la función ReadString, así que confundí uno con un byte nulo. Perdón por la confusión con C strings; Estaba usando fmt junto con bufio, lo que resultó en cosas divertidas que aparecían en la consola, así que pensé que podría ser el sucio byte nulo. Solo una aclaración final: ¿qué podría ser ese espacio en blanco adicional de ReadString? – mark2222
Ok, responderé a mi propia pregunta: es \ r then \ n: P La salida de la consola graciosa fue porque publiqué \ r \ n sin \ n. – mark2222