Quelle est la valeur zéro pour time.Time en Go et comment vérifier si une variable de temps est vide ?
Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai rencontré une situation confuse en travaillant avec le package time.
J'ai une structure dont l'un des champs est une date et une heure. Parfois, ce champ peut ne pas être défini (null dans d'autres langages). En PHP ou JavaScript, j'aurais simplement vérifié avec null, mais en Go, on n'a pas ce luxe. J'ai essayé d'utiliser nil, mais le compilateur a renvoyé une erreur.
Voici un exemple de mon code :
package main
import (
"fmt"
"time"
)
type Event struct {
Name string
CreatedAt time.Time
UpdatedAt time.Time // peut ne pas être défini
}
func main() {
e := Event{
Name: "Événement de test",
// UpdatedAt n'est pas défini
}
// J'essaie de vérifier si UpdatedAt est défini
if e.UpdatedAt == nil { // Erreur de compilation
fmt.Println("UpdatedAt n'est pas défini")
}
fmt.Println(e.UpdatedAt) // Affiche : 0001-01-01 00:00:00 +0000 UTC
}