Qual é o valor zero para time.Time em Go e como verificar se uma variável de tempo está vazia?
Olá a todos! Acabei de começar a estudar Go e me deparei com uma situação confusa ao trabalhar com o pacote time.
Tenho uma estrutura na qual um dos campos é uma data e hora. Às vezes, esse campo pode não ser definido (null de outras linguagens). Em PHP ou JavaScript, eu simplesmente verificaria se é null, mas em Go não existe esse luxo. Tentei usar nil, mas o compilador deu erro.
Aqui está um exemplo do meu código:
package main
import (
"fmt"
"time"
)
type Event struct {
Name string
CreatedAt time.Time
UpdatedAt time.Time // pode não ser definido
}
func main() {
e := Event{
Name: "Evento de teste",
// UpdatedAt não definido
}
// Tentando verificar se UpdatedAt foi definido
if e.UpdatedAt == nil { // Erro de compilação
fmt.Println("UpdatedAt não definido")
}
fmt.Println(e.UpdatedAt) // Exibe: 0001-01-01 00:00:00 +0000 UTC
}