AzLearn

الأنواع المعممة

Generics

مفهوم ~22 دقيقة

الأنواع المعممة — Generics

قبل Go 1.18، إذا أردت دالة تعمل مع أنواع مختلفة كنت تحتاج إما interface{} (تفقد أمان الأنواع) أو كتابة نفس الدالة لكل نوع. الأنواع المعممة (Generics) تحل هذه المشكلة بأناقة.

المشكلة بدون Generics

main.go

الحل مع Generics

main.go

القيود — Constraints

القيود تُحدد ما يمكن أن يكون عليه النوع المعمم:

main.go

قيود مخصصة — Custom Constraints

main.go

أنواع معممة — Generic Types

ليس فقط الدوال — يمكنك إنشاء أنواع معممة:

main.go

Map, Filter, Reduce

main.go

متى تستخدم Generics؟

استخدملا تستخدم
هياكل بيانات (Stack, Queue, Set)منطق أعمال محدد بنوع واحد
دوال مساعدة (Map, Filter, Sort)عندما interface كافية
تقليل تكرار الكود الفعليلمجرد الاستعراض
تحدي — Challenge