Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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

جزء من قسم Fundamentals في رحلة 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 يجب أن تُرجع اسم الشخص، وعمره، وما إذا كان طالباً أم لا. مهمتك هي إكمال الدالة عن طريق إضافة عبارة الإرجاع (return statement) المناسبة.

جرّب بنفسك

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اختبر نفسك

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

جميع دروس Fundamentals