تمرير متغيرات النوع إلى وظائف تأكيدات النوع
أنت تريد تنفيذ تأكيدات النوع عن طريق تمرير نوع إلى دالة. بشكل أساسي، أنت تهدف إلى تحقيق ما يلي:
// 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