【发布时间】:2019-08-16 14:16:31
【问题描述】:
有可能做这样的事情吗?
trace( for(a in array) a );
我见过它在填充数组时使用:
var numbers = [ for (i in 0...100) i ];
但似乎不能作为一个整体表达?
【问题讨论】:
标签: arrays for-loop expression haxe
有可能做这样的事情吗?
trace( for(a in array) a );
我见过它在填充数组时使用:
var numbers = [ for (i in 0...100) i ];
但似乎不能作为一个整体表达?
【问题讨论】:
标签: arrays for-loop expression haxe
for 可以在array comprehension(如您提到的)和map comprehension 中“作为值”使用。 while 和 do...while 也是如此。
在其他地方,不能这样使用循环。 Everything is an expression 很好地解释了这一点,使用与您给出的几乎相同的 trace 示例:
某些表达式,例如循环或 var 声明作为值没有任何意义,因此它们将被键入为 Void,因此无法在需要值的地方使用。例如以下将无法编译:
trace(for (i in 0...10) i); // ERROR: Cannot use Void as value
【讨论】: