"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تمرير متغيرات النوع إلى وظائف تأكيدات النوع في Go؟

كيفية تمرير متغيرات النوع إلى وظائف تأكيدات النوع في Go؟

تم النشر بتاريخ 2024-11-08
تصفح:484

How to Pass Type Variables to Functions for Type Assertions in Go?

تمرير متغيرات النوع إلى وظائف تأكيدات النوع

أنت تريد تنفيذ تأكيدات النوع عن طريق تمرير نوع إلى دالة. بشكل أساسي، أنت تهدف إلى تحقيق ما يلي:

// Note that this is pseudocode, because Type isn't valid here
func myfunction(mystring string, mytype Type) {
    ...

    someInterface := translate(mystring)
    object, ok := someInterface.(mytype)

    ...  // Do other stuff
}

func main() {
    // Desired function call
    myfunction("hello world", map[string]string)
}

لتنفيذ تأكيدات النوع بنجاح في وظيفتي، استخدم إعلان الوظيفة التالي:

package main

import "reflect"

func myfunction(v interface{}, mytype interface{}) bool {
    return reflect.TypeOf(v) == reflect.TypeOf(mytype)
}

func main() {
    assertNoMatch := myfunction("hello world", map[string]string{})
    fmt.Printf("% v\n", assertNoMatch) // false

    assertMatch := myfunction("hello world", "stringSample")
    fmt.Printf("% v\n", assertMatch) // true
}

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

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3