Avatar ·

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 ?