Avatar ·

خطأ "cannot convert data (type interface{}) to type string": type assertion في Go

مرحبًا بالجميع! أنا مبتدئ في Go وواجهت مشكلة لم أتمكن من حلها منذ اليوم الثاني. لدي دالة تستقبل بيانات من API خارجي بصيغة `interface{}`. أحاول تحويلها إلى string، لكن المترجم يعطي خطأ: "cannot convert data (type interface{}) to type string: need type assertion". إليك الكود الخاص بي: ```go package main import "fmt" func processData(data interface{}) string { // أحاول تحويل interface{} إلى string result := string(data) return result } func main() { var val interface{} = "Hello, World!" result := processData(val) fmt.Println(result) } ``` أفهم أن `interface{}` يمكنه تخزين أي قيمة، لكن أليس من المفترض أن يعمل التحويل عبر `string(data)`؟ في لغات أخرى، مثل Python أو Java، يتم هذا التحويل دون مشاكل. لقد جربت بالفعل استخدام `data.(string)`، لكني حصلت أيضًا على خطأ. ما الخطأ الذي أرتكبه؟ كيف يمكنني استخراج string من `interface{}` بشكل صحيح؟