خطأ "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{}` بشكل صحيح؟