Sobes.tech
Junior — Middle

¿Qué resultado devuelve la función incorporada len cuando se llama en una cadena?

sobes.tech AI

Respuesta de la IA

En Go, la función incorporada len al llamarla en una cadena devuelve la cantidad de bytes en esa cadena, y no la cantidad de caracteres (runas).

Esto se debe a que las cadenas en Go son secuencias de bytes en codificación UTF-8. Si la cadena contiene solo caracteres ASCII, entonces la cantidad de bytes es igual a la cantidad de caracteres. Pero si la cadena tiene caracteres multibyte (por ejemplo, cirílicos, emojis), entonces len devolverá la suma de bytes, no la cantidad de caracteres.

Ejemplo:

s := "Привет"
fmt.Println(len(s)) // Mostrará la cantidad de bytes, por ejemplo 12

runes := []rune(s)
fmt.Println(len(runes)) // Mostrará la cantidad de caracteres, por ejemplo 6

Si necesitas obtener la cantidad de caracteres (runas), debes convertir la cadena en un slice de runas y tomar su longitud.