Quelle est la différence entre fmt.Println() et println() en Go ? Quand utiliser quoi ?
Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai remarqué que pour afficher dans la console, on peut utiliser à la fois `fmt.Println()` et simplement `println()`. Par exemple, ces deux options fonctionnent :
```go
package main
func main() {
fmt.Println("Bonjour, le monde !")
println("Bonjour, le monde !")
}
```
Mais j'ai remarqué que dans la plupart des exemples et tutoriels, on utilise `fmt.Println()`. En même temps, `println()` existe aussi dans la bibliothèque standard (ou est-ce une fonction intégrée ?). Ce qui me trouble, c'est que :
1. Avec `fmt.Println()`, il faut importer le package `fmt`, alors que `println()` fonctionne sans import.
2. `fmt.Println()` sait afficher des types de données complexes (slices, structures), et `println()` aussi, semble-t-il.
3. Mais j'ai entendu dire que `println()` n'est pas vraiment du Go "pur" et qu'il n'est pas recommandé en production.
Expliquez-moi, s'il vous plaît, quelle est la différence ? Quand faut-il utiliser `fmt.Println()` et quand peut-on se contenter de `println()` ? Y a-t-il des pièges ? Et pourquoi tant d'exemples utilisent les deux ?