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

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

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

تُرجع function قيمتين values مفصولتين بفواصل، ونلتقط كلتا values باستخدام متغيرات متعددة في عملية الإسناد.

إذا كنت تحتاج فقط إلى بعض returned values، فيمكنك استخدام blank identifier _ لتجاهل القيم التي لا تحتاج إليها باستخدام ignore:

q, _ := divide(7, 3)  // تجاهل الباقي
fmt.Println("Quotient:", q)

يخبر استخدام _ لغة Go بتجاهل قيمة الإرجاع تلك. وهذا مطلوب عندما لا تستخدم قيمة، لأن Go لا تسمح بالمتغيرات غير المستخدمة.

challenge icon

التحدي

مبتدئ

في هذا التحدي، ستتدرّب على إرجاع قيم متعددة من function في Go.

لدينا function تُسمّى getPersonInfo، ومن المفترض أن تُرجع اسم شخص وage وما إذا كان طالبًا. مهمتك هي إكمال function عن طريق إضافة تعليمة return المناسبة.

جرّب بنفسك

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 عبر الإنترنت