ملخص - القوائم الديناميكية
جزء من قسم Fundamentals في رحلة GO على Coddy. الدرس 83 من 109.
التحدي
متوسطلنمارس العمل مع الشرائح (slices) في Go من خلال إنشاء مدير بسيط لقائمة التسوق!
مهمتك هي تنفيذ عدة وظائف تتعامل مع قائمة التسوق:
addItems: إضافة عناصر جديدة إلى قائمة التسوقremoveItem: إزالة عنصر من القائمة حسب الفهرسfindExpensiveItems: العثور على العناصر التي تتجاوز أسعارها حداً معيناًcalculateTotalCost: حساب التكلفة الإجمالية لجميع العناصر
يتم تمثيل كل عنصر في قائمة التسوق بسلسلة نصية (الاسم) و float64 (السعر). توضح الوظيفة main جميع هذه العمليات وهي تعمل معاً.
جرّب بنفسك
package main
import "fmt"
// addItems تضيف عناصر جديدة وأسعارها إلى قائمة التسوق
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
// الكود الخاص بك هنا
return names, prices
}
// removeItem تقوم بإزالة عنصر عند الفهرس المحدد
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
// الكود الخاص بك هنا
return names, prices
}
// findExpensiveItems تعيد العناصر التي تتجاوز أسعارها الحد المعين
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
// الكود الخاص بك هنا
return nil
}
// calculateTotalCost تعيد مجموع كل الأسعار
func calculateTotalCost(prices []float64) float64 {
// الكود الخاص بك هنا
return 0
}
func main() {
// تهيئة قوائم تسوق فارغة
names := []string{}
prices := []float64{}
// إضافة العناصر الأولية
initialNames := []string{"Apples", "Milk", "Bread"}
initialPrices := []float64{2.99, 3.49, 2.29}
names, prices = addItems(names, prices, initialNames, initialPrices)
// طباعة قائمة التسوق الأولية
fmt.Println("Initial Shopping List:")
for i := range names {
fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
}
// حساب وطباعة التكلفة الإجمالية
total := calculateTotalCost(prices)
fmt.Printf("\nTotal Cost: $%.2f\n", total)
// البحث عن العناصر الغالية وطباعتها
priceThreshold := 3.00
expensiveItems := findExpensiveItems(names, prices, priceThreshold)
fmt.Printf("\nExpensive Items (above $%.2f):\n", priceThreshold)
for _, item := range expensiveItems {
fmt.Println(item)
}
// إضافة عنصر جديد
names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
// إزالة عنصر
names, prices = removeItem(names, prices, 1)
fmt.Println("\nRemoved item at index 1")
// طباعة قائمة التسوق النهائية
fmt.Println("\nFinal Shopping List:")
for i := range names {
fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
}
}جميع دروس Fundamentals
4معاملات المقارنة والمعاملات المنطقية
معاملات المقارنة - الجزء 1معاملات المقارنة - الجزء 2معامل AND المنطقيمعامل OR المنطقيمعامل NOT المنطقيأساسيات أولوية المعاملاتملخص - إجراء المقارنات7تدفق التحكم: الحلقات التكرارية
شرح حلقة `for`حلقة `for` - أساسياتحلقة `for` - بشرط فقطالكلمة المفتاحية `break`الكلمة المفتاحية `continue`الحلقات المتداخلةملخص - تكرار العمليات2المتغيرات وأنواع البيانات الأساسية
ما هو المتغير؟استنتاج النوع باستخدام `:=`الأعداد الصحيحة (int)أرقام الفاصلة العائمةالقيم المنطقية (Booleans)النصوص (Strings)القيم الصفريةالثوابتقواعد التسميةملخص - المتغيرات والأنواع5الإدخال والإخراج الأساسي
المخرجات المنسقةرموز التنسيقطباعة الأنواعالحصول على مدخلات المستخدم الأساسيةملخص - الإدخال والإخراج8الدوال
فهم الدوالالتصريح عن دالةاستدعاء الدوالمعاملات الدالةإرجاع قيمة واحدةإرجاع قيم متعددةقيم الإرجاع المسماةأساسيات نطاق الدالةملخص - إنشاء كود قابل لإعادة الاستخدام11الأنواع المركبة: الشرائح
مقدمة إلى الشرائحالتصريح عن القيم المباشرة للشرائحإنشاء الشرائح باستخدام `make`طول الشريحة مقابل سعتهاالوصول إلى عناصر الشريحةإضافة العناصراقتطاع الشرائح/المصفوفات الموجودةالتكرار عبر الشرائحنسخ الشرائحملخص - القوائم الديناميكية3المعاملات الأساسية
المعاملات الحسابيةمعامل القسمةمعامل باقي القسمةمعامل التعيينمعاملات التعيين المركبةالزيادة والنقصانملخص - الحسابات6تدفق التحكم: الجمل الشرطية
جملة `if`الكلمة المفتاحية `else`الكلمة المفتاحية `else if`تظليل المتغيرات في `if`تهيئة المتغيراتجملة `switch``switch` مع التعبيرات`switch` بدون تعبيرالكلمة المفتاحية `fallthrough`ملخص - اتخاذ القراراتتدرّب بنفسك: مترجم Go عبر الإنترنت