Go Structure vide


Exemple

Une structure est une séquence d'éléments nommés, appelés champs, chacun ayant un nom et un type. La structure vide n'a pas de champs, comme cette structure vide anonyme:

var s struct{}

Ou comme ce type de structure vide nommée:

type T struct{}

La chose intéressante à propos de la structure vide est que sa taille est zéro (essayez The Go Playground ):

fmt.Println(unsafe.Sizeof(s))

Ceci imprime 0 , donc la structure vide elle-même ne prend pas de mémoire. c'est donc une bonne option pour quitter canal, comme (essayez The Play Playground ):

package main

import (
    "fmt"
    "time"
)

func main() {
    done := make(chan struct{})
    go func() {
        time.Sleep(1 * time.Second)
        close(done)
    }()

    fmt.Println("Wait...")
    <-done
    fmt.Println("done.")
}