Quelle est la valeur zéro (zero value) de time.Time en Go et comment vérifier si une variable de temps est vide ?
Bonjour à tous ! Je viens de commencer à apprendre Go et je suis confronté à une situation confuse en travaillant avec le type time.Time.
J'ai une structure pour stocker les données d'un utilisateur :
type User struct {
ID int
Name string
CreatedAt time.Time
UpdatedAt time.Time
}
Lorsque je crée un nouvel utilisateur sans spécifier explicitement l'heure, je m'attends à ce que les champs CreatedAt et UpdatedAt soient null ou nil, comme dans d'autres langages (Java, C#). Mais en Go, je ne peux pas leur assigner nil — le compilateur génère une erreur.
J'ai essayé ceci :
var u User
fmt.Println(u.CreatedAt) // Affiche : 0001-01-01 00:00:00 +0000 UTC
fmt.Println(u.CreatedAt == nil) // Erreur de compilation : cannot convert nil to type time.Time
Questions :
- Quelle est la valeur par défaut (zero value) de
time.Time? - Pourquoi n'est-ce pas
nil? - Comment
No answers yet.
Connectez-vous pour laisser une réponse