تكرار Haxe على الديناميكية
سؤال
لدي متغير من النوع Dynamic
وأعرف بالتأكيد أحد حقولها، فلنسميها a
, ، في الواقع عبارة عن مصفوفة.ولكن عندما أكتب
var d : Dynamic = getDynamic();
for (t in d.a) {
}
أحصل على خطأ في الترجمة في السطر الثاني:
لا يمكنك التكرار على قيمة ديناميكية، يرجى تحديد Iterator أو Iterable
كيف يمكنني جعل هذا قابلاً للتجميع؟
المحلول
لا يمكن لـ Haxe التكرار Dynamic
المتغيرات (كما يقول المترجم).
يمكنك إنجاح الأمر بعدة طرق، وربما تكون هذه الطريقة هي الأسهل (حسب حالتك):
var d : {a:Array<Dynamic>} = getDynamic();
for (t in d.a) { ... }
يمكنك أيضًا التغيير Dynamic
لنوع محتويات المصفوفة.
نصائح أخرى
هناك طريقة أخرى لفعل الشيء نفسه وهي استخدام متغير مؤقت إضافي وكتابة صريحة:
var d = getDynamic();
var a: Array<Dynamic> = d.a;
for (t in a) { ... }
لا تنتمي إلى StackOverflow