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)

يقوم _ بتجاهل الباقي حتى لا يشتكي المترجم من وجود متغير غير مستخدم.

challenge icon

التحدي

مبتدئ

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

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

ورقة مرجعية

يمكن لدوال Go أن تعيد قيمًا متعددة في وقت واحد. حدد أنواع إرجاع متعددة بين قوسين وأعد قيمًا متعددة مفصولة بفواصل:

func divide(a, b int) (int, int) {
    quotient := a / b
    remainder := a % b
    return quotient, remainder
}

التقط قيم الإرجاع المتعددة باستخدام متغيرات متعددة في عملية التعيين:

q, r := divide(7, 3)

جرّب بنفسك

package main

import "fmt"

// يجب أن تعيد هذه الدالة ثلاث قيم: الاسم، العمر، وهل هو طالب
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