تثبيت إعدادات لا يجب أن تتغير
في jobrunner ستتغير بعض القيم أثناء التنفيذ، مثل رسالة الخطأ الأخيرة. لكن الإصدار و الحد الأقصى لعدد المحاولات يجب أن يظلا كما قررناهما عند بناء البرنامج.
نريد أن يعبر الكود عن هذا القرار و يمنع تغييره بالخطأ. لهذا نستخدم قيمة ثابتة و نسميها constant.
const version = "v0.1"
const maxAttempts = 3const يشبه المتغير في أنه يعطي القيمة اسما، لكنه لا يسمح بتغيير القيمة بعد تعريفها.
تحديث jobrunner
package main
import "fmt"
const (
version = "v0.1"
maxAttempts = 3
)
func main() {
name := "jobrunner"
fmt.Println(name, version)
fmt.Println("max attempts:", maxAttempts)
}أصبح version و maxAttempts جزءا ثابتا من إعدادات البرنامج. يمكننا استخدامهما في main، لكن لا يمكننا تغييرهما أثناء التنفيذ.
التحدي
في المحرر، افتح ملف main.go و نفذ التعديلات التالية:
- عرف
versionبالقيمة"v0.1"وmaxAttemptsبالقيمة3كثابتين باستخدامconst.
ثم شغل البرنامج باستخدام:
go run main.goبعد التأكد من أن البرنامج يعمل، اضغط على زر تشغيل و تحقق لإكمال الدرس.
الخلاصة
تستخدم const عندما تكون القيمة جزءا ثابتا من تصميم البرنامج. في jobrunner أصبح الإصدار و الحد الأقصى للمحاولات ثابتين لأن البرنامج لا يجب أن يغيرهما أثناء التشغيل.
بقيت قيمة واحدة مهمة لم يمثلها الكود بعد: الحالة التي تمر بها المهمة. كيف نعبر عن مجموعة حالات نعرفها مسبقا، بحيث يفحصها المترجم بدل أن نثق في كتابتنا؟