إرجاع قيم متعددة
جزء من قسم الأساسيات في رحلة GO على Coddy. الدرس 56 من 109.
يمكن لدوال Go إرجاع قيم متعددة في الوقت نفسه، وهذا مفيد للغاية لإرجاع النتائج ومعلومات الأخطاء معًا.
أنشئ دالة تُرجع كلاً من حاصل القسمة والباقي:
func divide(a, b int) (int, int) {
quotient := a / b
remainder := a % b
return quotient, remainder
}
func main() {
q, r := divide(7, 3)
fmt.Println("7 ÷ 3 =", q, "with remainder", r)
}عند تشغيل هذا البرنامج، تكون مخرجاته:
7 ÷ 3 = 2 with remainder 1تُرجع الدالة قيمتين تفصل بينهما فاصلة، ونلتقط كلتا القيمتين باستخدام عدة متغيرات في عملية الإسناد.
إذا كنت تحتاج إلى بعض القيم المُعادة فقط، يمكنك استخدام المعرّف الفارغ _ لتجاهل القيم التي لا تحتاج إليها:
q, _ := divide(7, 3) // تجاهل باقي القسمة
fmt.Println("Quotient:", q)يُخبر استخدام _ لغة Go بتجاهل تلك القيمة المُعادة. وهذا مطلوب عندما لا تستخدم قيمة، لأن Go لا تسمح بوجود متغيرات غير مستخدمة.
التحدي
مبتدئفي هذا التحدي، ستتدرّب على إرجاع قيم متعددة من دالة في Go.
لدينا دالة تُسمّى getPersonInfo، وينبغي أن تُعيد اسم شخص وعمره وما إذا كان طالبًا. مهمتك هي إكمال الدالة بإضافة عبارة الإرجاع المناسبة.
جرّب بنفسك
package main
import "fmt"
// يجب أن تُرجع هذه الدالة ثلاث قيم: name وage وisStudent
func getPersonInfo() (string, int, bool) {
// المتغيرات معرّفة مسبقًا لك
name := "Alex"
age := 25
isStudent := true
// TODO: أرجِع القيم الثلاث جميعها (name, age, isStudent)
}
func main() {
// استدعِ الدالة وخزّن القيم المُرجعة
name, age, isStudent := getPersonInfo()
// اطبع القيم
fmt.Printf("Name: %s\n", name)
fmt.Printf("Age: %d\n", age)
fmt.Printf("Is Student: %t\n", isStudent)
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4معاملات المقارنة والمعاملات المنطقية
معاملات المقارنة - الجزء 1معاملات المقارنة - الجزء 2معامل AND المنطقيمعامل OR المنطقيمعامل NOT المنطقيأساسيات أولوية المعاملاتملخص - إجراء المقارنات7تدفق التحكم: الحلقات التكرارية
شرح حلقة `for`حلقة `for` - أساسياتحلقة `for` - بشرط فقطالكلمة المفتاحية `break`الكلمة المفتاحية `continue`الحلقات المتداخلةملخص - تكرار العمليات2المتغيرات وأنواع البيانات الأساسية
ما هو المتغير؟استنتاج النوع باستخدام `:=`الأعداد الصحيحة (int)أرقام الفاصلة العائمةالقيم المنطقية (Booleans)النصوص (Strings)القيم الصفريةالثوابتقواعد التسميةملخص - المتغيرات والأنواع5الإدخال والإخراج الأساسي
المخرجات المنسقةرموز التنسيقطباعة الأنواعالحصول على مدخلات المستخدم الأساسيةملخص - الإدخال والإخراج8الدوال
فهم الدوالالتصريح عن دالةاستدعاء الدوالمعاملات الدالةإرجاع قيمة واحدةإرجاع قيم متعددةقيم الإرجاع المسماةأساسيات نطاق الدالةملخص - إنشاء كود قابل لإعادة الاستخدام3المعاملات الأساسية
المعاملات الحسابيةمعامل القسمةمعامل باقي القسمةمعامل التعيينمعاملات التعيين المركبةالزيادة والنقصانملخص - الحسابات6تدفق التحكم: الجمل الشرطية
جملة `if`الكلمة المفتاحية `else`الكلمة المفتاحية `else if`تظليل المتغيرات في `if`تهيئة المتغيراتجملة `switch``switch` مع التعبيرات`switch` بدون تعبيرالكلمة المفتاحية `fallthrough`ملخص - اتخاذ القراراتتدرّب بنفسك: مترجم Go عبر الإنترنت