ملخص - القوائم الديناميكية
جزء من قسم الأساسيات في رحلة GO على Coddy. الدرس 83 من 109.
التحدي
متوسطلنتدرّب على التعامل مع الشرائح في 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])
}
}جميع دروس الأساسيات
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 عبر الإنترنت