الدوال المتقلبة في لغة جولانج

تتيح لك الدوال المتنوعة في Go تمرير عدد متغير من الوسائط إلى دالة. تكون هذه الميزة مفيدة عندما لا تعرف مسبقًا عدد الحجج التي ستمررها. تقبل دالة Golang المتغيرة  وسيطات متعددة من نفس النوع ويمكن استدعاؤها بأي عدد من الوسائط، بما في ذلك عدم وجود أي منها .

الدوال المتقلبة في لغة جولانج

package main
import "fmt"

// Hàm Variadic tính tổng
func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

func main() {
    fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
    fmt.Println("Sum of 4, 5:", sum(4, 5))
    fmt.Println("Sum of no numbers:", sum())
}

نتيجة:

Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0

بناء الجملة:

func functionName(parameters ...Type) ReturnType {
    // Code
}

في بناء الجملة أعلاه:

  • parameters ...Typeيشير إلى أن الوظيفة يمكنها قبول عدد متغير من الوسائط من نوع Type.
  • يمكنك الوصول إلى الوسائط في الدالة كشريحة.

كيفية استخدام الدوال غير المؤكدة في Golang

استخدام الدوال المتغيرة

عند تعريف دالة متغيرة، يمكنك تحديد نوع الوسيطة متبوعًا بعلامة حذف (...) كما في المثال أعلاه. داخل الدالة، يمكن اعتبار هذه الحجج بمثابة شريحة.

استدعاء دالة متغيرة

يمكنك استدعاء دالة متغيرة بأي عدد من الوسائط، بما في ذلك الصفر. تعامل هذه الوظيفة الوسائط على أنها شريحة.

على سبيل المثال:

package main
import "fmt"

func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

func main() {
    fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
    fmt.Println("Sum of 4, 5:", sum(4, 5))
    fmt.Println("Sum of no numbers:", sum())
}

نتيجة:

Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0

دالة متغيرة ذات معلمات مختلفة

يمكنك أيضًا دمج المعلمات المتغيرة مع المعلمات العادية في الدالة. يجب أن تكون المعلمات المتغيرة دائمًا هي المعلمة الأخيرة.

على سبيل المثال:

package main
import "fmt"

// Hàm Variadic tính tổng
func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

// Hàm với tham số thông thường và variadic 
func greet(prefix string, nums ...int) {
    fmt.Println(prefix)
    for _, n := range nums {
        fmt.Println("Number:", n)
    }
}
func main() {
    greet("Sum of numbers:", 1, 2, 3)
    greet("Another sum:", 4, 5)
    greet("No numbers sum:")
}

نتيجة:

Sum of numbers:
Number: 1
Number: 2
Number: 3
Another sum:
Number: 4
Number: 5
No numbers sum:

حدود الدوال المتغيرة

  • لا يمكن للوظائف المتغيرة أن تحتوي إلا على معلمة متغيرة واحدة ويجب أن تكون المعلمة الأخيرة.
  • لا يمكنك الحصول على معلمات متغيرة متعددة في تعريف وظيفة واحدة.

اترك تعليقاً

أعمال جانبية مربحة بالفعل في عام 2026: 7 خيارات واقعية والمفاضلات التي يجب معرفتها

أعمال جانبية مربحة بالفعل في عام 2026: 7 خيارات واقعية والمفاضلات التي يجب معرفتها

قارن بين المشاريع الجانبية الواقعية لعام 2026 من حيث تكلفة البدء والرسوم والمرونة والتحكم في الدخل، مع التوجيهات الضريبية الحالية بشأن عمليات الاحتيال من المصادر الرسمية.

بيئة العمل عن بعد المريحة في عام 2026: حسّن مكتبك المنزلي دون الإفراط في الشراء

بيئة العمل عن بعد المريحة في عام 2026: حسّن مكتبك المنزلي دون الإفراط في الشراء

قم بتحسين بيئة العمل في مكتبك المنزلي من خلال إرشادات OSHA و NIOSH الحالية بشأن ملاءمة الكرسي، وارتفاع الشاشة، وإعداد الكمبيوتر المحمول، والإضاءة، والحركة.

لماذا يُعدّ الذكاء العاطفي مهمًا في القيادة - وكيفية تطويره

لماذا يُعدّ الذكاء العاطفي مهمًا في القيادة - وكيفية تطويره

تعرف على أهمية الذكاء العاطفي في القيادة، وأين يكون أكثر فائدة، وكيفية تعزيزه، وكيفية معرفة ما إذا كان نهجك ناجحًا.

كيفية الانتقال إلى مهنة في مجال التكنولوجيا بدون شهادة جامعية: خارطة طريق تركز على النتائج لعام 2026

كيفية الانتقال إلى مهنة في مجال التكنولوجيا بدون شهادة جامعية: خارطة طريق تركز على النتائج لعام 2026

خارطة طريق عملية للانتقال إلى مجال التكنولوجيا بدون شهادة جامعية: اختر دورًا متاحًا، وقم ببناء مهارات جاهزة للعمل، وأثبتها من خلال المشاريع، واستخدم ملاحظات التوظيف للتحسين.

بناء علامة تجارية شخصية على لينكدإن في عام 2026: ما الذي لا يزال فعالاً، وما الذي تغير، وما الذي يجب تجاهله

بناء علامة تجارية شخصية على لينكدإن في عام 2026: ما الذي لا يزال فعالاً، وما الذي تغير، وما الذي يجب تجاهله

قم ببناء علامة تجارية شخصية موثوقة على LinkedIn في عام 2026 من خلال الملف الشخصي الحالي والمحتوى والنشرة الإخبارية والتحليلات والتحقق من الهوية وإرشادات الظهور من LinkedIn.

الاستقالة الهادئة مقابل الفصل الهادئ في عام 2026: ما الذي يتغير فعلاً في بيئة العمل؟

الاستقالة الهادئة مقابل الفصل الهادئ في عام 2026: ما الذي يتغير فعلاً في بيئة العمل؟

الاستقالة الهادئة والفصل الهادئ مصطلحان شائعان، وليسا تشخيصين. تعرّف على ما هو مؤكد، وما يعتمد على السياق، وما يمكن للموظفين والمدراء فعله لاحقًا.

The Rise of the Fractional Executive: When Part-Time C-Suite Leadership Makes Sense

The Rise of the Fractional Executive: When Part-Time C-Suite Leadership Makes Sense

Fractional executives offer senior leadership without a full-time hire. Learn when the model works, what to ask, and the risks to manage.

كيفية التفاوض على زيادة الراتب خلال مراجعات الأداء في الربع الرابع: دليل عملي لاتخاذ القرارات حتى عام 2026

كيفية التفاوض على زيادة الراتب خلال مراجعات الأداء في الربع الرابع: دليل عملي لاتخاذ القرارات حتى عام 2026

قم بإعداد طلب زيادة أقوى للربع الرابع مع بيانات الأجور الحالية، وخيارات التوقيت، ومفاضلات التعويض، ونصوص للنتائج الإيجابية أو الجزئية أو السلبية.

6 مهارات عالية الدخل يمكنك البدء بتعلمها قبل نهاية عام 2026

6 مهارات عالية الدخل يمكنك البدء بتعلمها قبل نهاية عام 2026

اختر مهارة ذات دخل مرتفع يمكنك البدء بها بشكل واقعي قبل نهاية عام 2026، مع بيانات الأجور الحالية، وأولويات التعلم، وفحص ذاتي عملي.

إتقان جدول العمل الهجين: إطار عمل عملي فعال

إتقان جدول العمل الهجين: إطار عمل عملي فعال

قم ببناء جدول عمل هجين يرتكز على المهام، وتداخل مهام الفريق، والنتائج القابلة للقياس. اطلع على نماذج الأنماط، وعلامات التحذير، ومتى يجب تعديل خطتك.