Avatar ·

Cómo invertir una cadena en Go: orden inverso de caracteres

¡Hola a todos! Acabo de empezar a estudiar Go y me encontré con una tarea simple, a primera vista: invertir una cadena. En Python escribiría `'hello'[::-1]` y obtendría `'olleh'`. En Go intenté hacerlo así: ```go package main import "fmt" func reverse(s string) string { var result string for i := len(s) - 1; i >= 0; i-- { result += string(s[i]) } return result } func main() { fmt.Println(reverse("hello")) // Muestra: olleh } ``` Con una cadena ASCII como "hello" funciona. Pero cuando intenté invertir la palabra rusa "привет" o una cadena con emojis, por ejemplo "👋Привет", obtuve un galimatías completo. Para "привет" muestra algo como "тверип" — parece similar, pero no del todo correcto, y para el emoji produce caracteres extraños. Entiendo que el problema probablemente está en la codificación. Go usa UTF-8, y mi simple iteración por bytes no funciona para caracteres multibyte. Pero, ¿cómo escribir correctamente una función de inversión de cadenas en Go? ¿Es necesario convertir