use*_*643 2 lambda actionscript actionscript-3
我将一些我在python中原型化的代码移植到flash中,而actionscript并没有像我预期的那样糟糕(我听说v3比v2好很多!)还有一些东西我不得不这样做看起来过于平淡/样板,例如总结清单......
var a:int = 0;
for each ( var value:int in annual_saving )
{
a = a + value;
}
return a / 100;
Run Code Online (Sandbox Code Playgroud)
而不是......
return reduce(lambda x,y: (x+y), self.annual_saving ) / 100
Run Code Online (Sandbox Code Playgroud)
对我来说,感觉有点像Java(eww Java:puke!XO ###)
我只是不知道as3的酷阵列求和功能?或者它是否理解lambda演算,或列表理解?或提供一些其他这种简洁的符号?我怀疑是否有一种更优雅的方式来做这件事,或者我在这个项目的剩余时间里停留在20世纪!?
干杯:)
罗杰.
Actionscript与JS非常相似.如果你不得不这样做,你可以自己轻松地实现它:
var annual_saving = [50, 100, 50, 100];
function reduce (f, arr) {
var a = arr[0];
for (var i = 1; i < arr.length; i++) {
a = f(a,arr[i]);
}
return a;
}
var res = reduce(function (x,y) { return x+y }, annual_saving);
Run Code Online (Sandbox Code Playgroud)
你可以很容易地扩展这个...语法将不那么吸引人,但仍然非常简洁.