"Passing no argumen" membuatnya terdengar seperti pemanggilan fungsi. Ini adalah struct literal tanpa bidang yang ditentukan. X {} adalah nilai nol dari struct X untuk semua X.
Russ Cox
1
@RussCox Saya tidak berpikir itu benar. Dalam kasus saya, saya memiliki bidang waktu. Waktu di struct saya yang memiliki atribut 'omitempty'. Jika saya tidak menetapkan nilai itu, maka akan secara otomatis diatur ke 0001-01-01 00:00:00 +0000 UTC alih-alih diabaikan.
Memang, jika membandingkan apakah nilai waktu yang diberikan adalah nol atau tidak, inilah yang sebenarnya harus digunakan.
Gaurav Ojha
7
Meskipun ini adalah jawaban yang benar untuk perbandingan, OP tidak bertanya tentang perbandingan, tetapi bagaimana menginisialisasi nilai nol. Jawaban yang diterima benar.
IsZero()
untuk mendeteksi waktu nol.Jawaban:
Meminta
time.Time
struct literal kosong akan mengembalikan tanggal nol Go. Jadi, untuk pernyataan cetak berikut:Outputnya adalah:
Demi kelengkapan, dokumentasi resmi secara eksplisit menyatakan:
sumber
Anda harus menggunakan fungsi Time.IsZero () sebagai gantinya:
sumber
Nilai nol untuk waktu.Time adalah
0001-01-01 00:00:00 +0000 UTC
Lihat http://play.golang.org/p/vTidOlmb9Psumber