Construir cadenas en Go
Concatenar en un bucle asigna memoria cada vez; un Builder no.
func build(parts []string) (string, string) {
var b strings.Builder
b.Grow(64)
for i, part := range parts {
if i > 0 {
b.WriteString(" > ")
}
b.WriteString(part)
}
joined := strings.Join(parts, " > ")
return b.String(), joined
}
Cómo funciona
strings.Builderhace crecer un solo búfer y escribe en él.Growreserva de antemano cuando conoces el tamaño.strings.Joines más simple cuando ya tienes las partes.
Palabras clave y builtins usados aquí
forfuncifrangereturnstringvar
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 229
- Tokens
- 71
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 45 segundos.
Paso 3 de 5 en Cadenas y formato; paso 27 de 30 en Fundamentos del lenguaje.