إعداد المشروع
جزء من قسم Logic & Flow في رحلة GO على Coddy — الدرس 20 من 68.
التحدي
سهلعلى مدار الدروس القليلة القادمة، ستقوم ببناء تطبيق بسيط لقائمة المهام يعمل عبر واجهة السطر البرمجي يتيح للمستخدمين إضافة المهام وعرضها وإكمالها وإزالتها.
في هذا التحدي، ستنشئ الأساس لنظام إدارة المهام من خلال إعداد هيكل البيانات الأساسي وواجهة المستخدم. هذه هي الخطوة الأولى في بناء تطبيق كامل لقائمة المهام سينمو طوال المشروع.
ستتلقى مدخلين:
- سلسلة نصية تمثل اسم التطبيق (على سبيل المثال،
"MyTasks") - سلسلة نصية تمثل اسم المستخدم (على سبيل المثال،
"Alice")
مهمتك هي:
- تعريف هيكل
Taskبحقلين:Name(string) - وصف المهمةCompleted(bool) - ما إذا كانت المهمة قد اكتملت
- إنشاء شريحة (slice) من هياكل
Taskللاحتفاظ بقائمة المهام الخاصة بك (تكون فارغة في البداية) - عرض رسالة ترحيب بالتنسيق التالي:
"Welcome to [app_name], [user_name]!" - عرض قائمة بالخيارات التالية، كل منها في سطر منفصل:
"1. Add Task""2. View Tasks""3. Complete Task""4. Remove Task""5. Exit"
- طباعة العدد الحالي للمهام بالتنسيق التالي:
"Current tasks: [count]"
يؤسس هذا التحدي الهيكل الأساسي الذي سيدعم جميع الوظائف المستقبلية في نظام إدارة المهام الخاص بك. سيكون هيكل Task هو لبنة البناء لتخزين المهام الفردية، بينما ستدير الشريحة (slice) مجموعة المهام الخاصة بك. توفر القائمة واجهة واضحة للمستخدمين لفهم الإجراءات التي يمكنهم القيام بها.
جرّب بنفسك
package main
import "fmt"
func main() {
// قراءة المدخلات
var appName string
var userName string
fmt.Scanln(&appName)
fmt.Scanln(&userName)
// TODO: اكتب كودك أدناه
// تعريف هيكل المهمة (Task struct)
// إنشاء شريحة (slice) من هياكل المهام
// عرض رسالة الترحيب والقائمة
// طباعة عدد المهام الحالية
}جميع دروس Logic & Flow
1تدفق التحكم المتقدم
جملة Switch مع `fallthrough`الخروج من الحلقات المتداخلةالاستمرار في حلقة محددةجملة `goto`ملخص - التحكم المتقدم في الحلقات2الـ Structs والميثودز (Methods)
تعريف الـ Methods على الـ Structsالـ Value Receiversالـ Pointer Receiversاختيار الـ Receiversالـ Methods مقابل الـ Functionsملخص - سلوك الـ Struct5تعمق في الـ Maps
Maps من نوع Structsالـ Pointers كقيم في الـ Mapsالتحقق من الـ Nil Mapsمقارنة الـ Mapsمراجعة - عداد تكرار الكلمات3الواجهات (الأساسيات)
ما هي الواجهة؟تعريف الواجهةتطبيق الواجهةاستخدام أنواع الواجهاتالواجهة الفارغةتأكيدات النوع (Type Assertions)تبديل النوع (Type Switch)ملخص - الأشكال والسلوكيات