دروس الوحدة (1/5)
إذا، وإلا، وبيانات init
في Go، تعتبر صيغة if هي الصيغة الكلاسيكية ولكن مع وجود اختلافين مهمين
مقارنةً بـ C/Java: لا توجد أقواس حول الشرط، و
القدرة على الإعلان عن متغير مؤقت مباشرة في ملف if
(بيان الحرف الأول).
بناء الجملة الأساسي
if temperatura > 30 {
fmt.Println("caldo")
} else if temperatura > 20 {
fmt.Println("mite")
} else {
fmt.Println("fresco")
}الأقواس إلزامية، حتى بالنسبة للكتل ذات السطر الواحد. ال
يجب أن يكون الشرط من النوع bool: لا يوجد "صدق" مثل Python أو JS.
n := 0
// if n { ... } // ERRORE: int non è bool
if n != 0 { ... } // okبيان init: النطاق يقتصر على if
يمكنك إعلان أن المتغير صالح فقط داخل if/else،
فصلها عن الشرط بـ ;:
if v, err := call(); err == nil {
fmt.Println("ok", v)
} else {
fmt.Println("ko", err)
}
// qui v ed err NON esistono piùإنه النمط الاصطلاحي لمعالجة الأخطاء دون تلويث النطاق الخارجي.
التظليل في نطاق if
إذا حصل المتغير الخارجي على "مظلل" بواسطة الحرف init، فسيكون بالداخل إذا فاز الإصدار المحلي. وبعد ذلك مباشرة، يعود الجزء الخارجي إلى الظهور.
x := 10
if x := 3; x > 5 {
fmt.Println("dentro:", x) // mai stampato (3 < 5)
} else {
fmt.Println("else:", x) // 3
}
fmt.Println("dopo:", x) // 10 — quella esternaلا يوجد مشغل ثلاثي
لا يحتوي Go على cond ? a : b. بالنسبة للمهام المشروطة، تحتاج إلى if/else
في 3-4 أسطر - إنه اختيار تصميمي لصالح سهولة القراءة.
var label string
if age >= 18 {
label = "adulto"
} else {
label = "minore"
}جربه
اطبع "positivo" أو "صفر" أو "negativo" اعتمادًا على قيمة n.
إظهار التلميح
`if / else if / else` سلسلة مع الشروط الموجودة على العلامة.
الحل متاح بعد 3 من المحاولات
استخدم عبارة init للإعلان عن v := 42 في if وقم بطباعتها فقط إذا كانت v >= 18.
إظهار التلميح
بناء الجملة: `إذا كان الحرف الأول؛ الشرط { ... }`.
الحل متاح بعد 3 من المحاولات
ماذا يطبع هذا البرنامج؟
x := 10
if x := 3; x > 5 {
fmt.Println("dentro:", x)
} else {
fmt.Println("else:", x)
}
fmt.Println("dopo:", x)خلاصة
- الشروط بدون قوسين، الأقواس إلزامية دائما.
- يجب أن يكون الشرط محمي_INLINE_13: لا يوجد صدق ضمني.
- الحرف الأول
if v, err := f(); err == nil { ... }يحد من نطاقvوerr. - التظليل في الحرف الأول: احرص على عدم تظليل المتغيرات الخارجية.
- لا يوجد ثلاثي: اكتب
if/elseموسعًا.