¿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