Avatar ·

كيفية تحديد نوع المتغير في Go: الطرق والأمثلة

مرحباً بالجميع! لقد بدأت للتو في تعلم Go وواجهت مشكلة. في لغات أخرى، مثل Python أو JavaScript، يمكنني بسهولة معرفة نوع المتغير باستخدام type() أو typeof. لكن في Go لا أجد طريقة بسيطة للقيام بذلك. إليك مثال يربكني: ```go package main import "fmt" func main() { var x interface{} x = 42 // كيف يمكنني معرفة أن x هو int? fmt.Println(x) // يطبع فقط 42 } ``` أفهم أن Go لغة ذات أنواع ثابتة (statically typed)، وعادةً ما تكون الأنواع معروفة في وقت الترجمة. لكن ماذا أفعل إذا كنت أعمل مع interface{} فارغ أو مع بيانات من JSON؟ على سبيل المثال، أتلقى رداً من API قد يحتوي على أنواع مختلفة من البيانات: نصوص، أرقام، قيم منطقية. كيف يمكنني برمجياً تحديد النوع المخزن في المتغير؟ لقد جربت استخدام fmt.Printf("%T", x)، لكن هذا فقط للتصحيح (debugging). أحتاج تحديداً في الكود للتحقق من النوع لتنفيذ إجراءات مختلفة بناءً عليه. على سبيل المثال: - إذا