Menu
CoddyTech

إرجاع قيم متعددة

جزء من قسم الأساسيات في رحلة 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 لا تسمح بوجود متغيرات غير مستخدمة.

challenge icon

التحدي

مبتدئ

في هذا التحدي، ستتدرّب على إرجاع قيم متعددة من دالة في 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)
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم Go عبر الإنترنت