Avatar ·

كيفية تحديد نوع متغير أو كائن في Go: دليل للمبتدئين

```html مرحبًا! لقد بدأت للتو في تعلم Go، وواجهت مشكلة. في لغات أخرى، مثل Python أو JavaScript، يمكنني بسهولة التحقق من نوع المتغير أثناء التنفيذ باستخدام type() أو typeof. لكن في Go، لا أجد طريقة بسيطة للقيام بذلك. إليك مثال: أنا أكتب دالة تأخذ interface{} (واجهة فارغة) ويجب أن تتعامل مع الأنواع المختلفة بطرق مختلفة. لنفترض أن لدي هذا الكود: ```go package main import "fmt" func processData(data interface{}) { // كيف يمكنني معرفة نوع data؟ fmt.Println("تم استلام البيانات:", data) } func main() { processData(42) processData("hello") processData([]int{1, 2, 3}) } ``` أريد أن تتصرف الدالة processData بشكل مختلف: إذا كان النوع int — تطبع الرقم، إذا كان سلسلة — تطبع طولها، إذا كان شريحة — تطبع عدد العناصر. لكنني لا أعرف كيفية تحديد النوع أثناء التنفيذ. سمعت عن حزمة reflect، لكنها تبدو معقدة ويقال إنها بطيئة. هل هناك طريقة أبسط؟ أم أن reflect هي الحل الوحيد؟