Avatar ·

¿Cuál es la diferencia entre fmt.Println() y println() en Go? ¿Cuándo usar cada uno?

¡Hola a todos! Acabo de empezar a estudiar Go y noté que para la salida en consola se puede usar tanto `fmt.Println()` como simplemente `println()`. Por ejemplo, ambas opciones funcionan: ```go package main func main() { fmt.Println("¡Hola, mundo!") println("¡Hola, mundo!") } ``` Pero noté que en la mayoría de ejemplos y tutoriales usan `fmt.Println()`. Al mismo tiempo, `println()` también existe en la biblioteca estándar (¿o es una función incorporada?). Me confunde que: 1. Al usar `fmt.Println()` necesitas importar el package `fmt`, mientras que `println()` funciona sin importación. 2. `fmt.Println()` puede mostrar tipos de datos complejos (slices, structs), y `println()` también parece hacerlo. 3. Pero he oído que `println()` no es "Go puro" y no se recomienda usarlo en producción. Expliquen, por favor, ¿cuál es la diferencia? ¿Cuándo se debe usar `fmt.Println()` y cuándo se puede usar `println()`? ¿Hay algún problema oculto? ¿Y por qué tantos ejemplos usan