Voici une cheatsheet exhaustive en français pour Go :
Bases & syntaxe
Variables et types
package main
import "fmt"
func main() {
var a int = 10
b := 20 // Infer type from value
fmt.Println(a, b)
}
Déclare des variables avec
varou l'opérateur court.
Conditions et boucles
package main
import "fmt"
func main() {
if x := 10; x > 5 {
fmt.Println("x est supérieur à 5")
}
for i := 0; i < 5; i++ {
fmt.Print(i, " ")
}
}
Utilise des structures
ifetfortypiques.
Structures de données
Tableaux
package main
import "fmt"
func main() {
arr := [3]int{1, 2, 3}
fmt.Println(arr[0])
}
Déclare un tableau fixe avec une taille spécifique.
Slices
package main
import "fmt"
func main() {
slice := []int{1, 2, 3}
append(slice, 4)
fmt.Println(slice)
}
Utilise des slices pour des tableaux dynamiques et flexibles.
Fonctions & méthodes essentielles
Déclaration de fonctions
package main
import "fmt"
func add(a, b int) int {
return a + b
}
func main() {
result := add(5, 3)
fmt.Println(result)
}
Crée des fonctions avec paramètres et valeurs de retour.
Fonctions anonymes
package main
import "fmt"
func main() {
func(x int) {
fmt.Println("Anonyme", x)
}(10)
}
Déclare des fonctions anonymes pour des opérations courtes.
Patterns courants
Pattern singleton
type Singleton struct{}
var instance *Singleton
func GetInstance() *Singleton {
if instance == nil {
instance = &Singleton{}
}
return instance
}
Implémente le pattern singleton pour créer une seule instance d'une classe.
Operations avancees
Pointeurs et références
package main
import "fmt"
func main() {
a := 10
p := &a
fmt.Println(*p)
}
Utilise des pointeurs pour modifier les valeurs des variables directement.
Goups de travail (goroutines)
package main
import (
"fmt"
"time"
)
func worker(id int) {
for i := 0; i < 3; i++ {
time.Sleep(time.Second)
fmt.Printf("Worker %d: Task %d\n", id, i)
}
}
func main() {
for i := 1; i <= 5; i++ {
go worker(i)
}
time.Sleep(2 * time.Second)
}
Crée et gère des groupes de travail pour la concurrence.
Debugging & outils
Utilisation du débogage intégré de GoLand
// Ouvrez le code, cliquez sur "Debug" et sélectionnez un point d'arrêt.
// Le débogueur s'arrêtera là et vous pouvez inspecter les variables.
Gérez l'exécution du code pas à pas et inspectez les valeurs des variables.
Utilisation de pprof pour le profiling
package main
import (
"net/http"
_ "net/http/pprof"
)
func main() {
go func() {
http.ListenAndServe("localhost:6060", nil)
}()
// Votre code ici
}
Utilisez
pprofpour analyser le temps et l'utilisation de la mémoire.