Golang

Golang cheatsheet.

Golang Cheatsheet

Import un package depuis un projet en local :

1
go mod edit -replace=github.com/username/projet_importé=../projet_importé

Channels

Le select permet de gérer plusieurs cases simultanément, notamment :

  • Ajouter un élément dans un channel
  • Interrompre l’execution si le contexte est annulé
  • Continuer son exécution et ne pas bloquer
1
2
3
4
5
6
7
8
9
select {
    case stationChan <- station:
        fmt.Println("Station envoyée")
    case <-ctx.Done():
		fmt.Println("Contexte annulé")
		return 
    default:
        fmt.Println("Channel plein, envoi ignoré")
}

Dans certains cas on ne veut pas continuer l’éxécution si le channel est plein, et on VEUT bloquer.

Dans ce cas il faut enlever le default, ou enlever le select.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
select {
    case stationChan <- station:
        fmt.Println("Station envoyée")
    case <-ctx.Done():
		fmt.Println("Contexte annulé")
		return
}

ou plus simplement

stationChan <- station:
fmt.Println("Station envoyée")