سؤال

لدي متغير من النوع 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) { ... }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top