ما هي القيمة الصفرية لـ time.Time في Go وكيفية التحقق مما إذا كان متغير الوقت فارغًا؟
مرحبًا بالجميع! لقد بدأت للتو في تعلم Go وواجهت موقفًا غير مفهوم أثناء العمل مع حزمة time.
لدي هيكل يحتوي على حقل للتاريخ والوقت. أحيانًا قد لا يتم تعيين هذا الحقل (null من لغات أخرى). في PHP أو JavaScript كنت سأتحقق ببساطة من null، لكن في Go لا يوجد هذا الرفاهية. حاولت استخدام nil، لكن المترجم أظهر خطأ.
إليك مثال على الكود الخاص بي:
package main
import (
"fmt"
"time"
)
type Event struct {
Name string
CreatedAt time.Time
UpdatedAt time.Time // قد لا يتم تعيينه
}
func main() {
e := Event{
Name: "حدث اختباري",
// UpdatedAt لم أقم بتعيينه
}
// أحاول التحقق مما إذا كان UpdatedAt قد تم تعيينه
if e.UpdatedAt == nil { // خطأ في الترجمة
fmt.Println("UpdatedAt لم يتم تعيينه")
}
fmt.Println(e.UpdatedAt) // يطبع: 0001-01-01 00:00:00 +0000 UTC
}