"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا لا يوجد ذعر الخطأ العالمي الخاص بي بعد التهيئة؟

لماذا لا يوجد ذعر الخطأ العالمي الخاص بي بعد التهيئة؟

نشر في 2025-03-23
تصفح:466

Why Doesn't My Global Error Variable Panic After Initialization in Go?

لماذا لا يتم فزع الخطأ العالمي بعد التهيئة؟ ينشأ هذا التناقض من سوء فهم للنطاق المتغير. F ، loaderr: = os.open ("asdasd") إذا loaderr! = nil { CheckerR () } إذا f! = nil { fmt.println (f.name ()) } }

ينشئ هذا الخط متغيرًا محليًا جديدًا لكل من F و LoaderR. لا يعدل المتغيرات العالمية المحددة خارج الوظيفة. وبالتالي ، عند الاتصال بالاتصال CheckerR () ، لا يزال LoaderR لا يتم تعيينه في أي مكان ضمن نطاق الوظيفة الرئيسية. _ ، err: = os.open ("asdasd") loaderr = err إذا loaderr! = nil { CheckerR () } }

باستخدام = ، تقوم بتعيين قيمة متغير ERR المحلي إلى متغير LOADERR العالمي. يتيح هذا للدالة CheckerR () الوصول إلى المتغير العالمي المعدل وإطلاق الذعر. في المثال الأول ، يمكنك إعلان LoaderR كمتغير عالمي خارج الوظيفة الرئيسية من خلال نقل تعريفه:

Func Main () { _ ، loaderr = os.open ("asdasd") إذا loaderr! = nil { CheckerR () } إذا f! = nil { fmt.println (f.name ()) } }

func main() {
    f, loadErr := os.Open("asdasd")
    if loadErr != nil {
        checkErr()
    }
    if f != nil {
        fmt.Println(f.Name())
    }
}
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3