用…(rest) 来表示不确定个数的Arguments变量

来源:互联网 发布:php y 编辑:程序博客网 时间:2024/05/17 08:40
因为as3中会在函数调用时检查参数(argument)的数量,所以我们不可以像在as1/as2时候那样随意的设置函数参数(argument)的个数.但as3使用一个新的特殊的参数来解决这个问题.这个参数是…(rest) (Keyword: …(rest)).
参数…(rest) 放置在函数的参数列表的最后边,用来表示当函数调用时可以附加传递任意个数任何类型的参数,它的格式是三个点加上一个关键字. 当函数被调用时,这些附加的参数(arguments)被以数组形式绑定到这个关键字.
ActionScript Code:

function usingRest(required:Number, ... optionalArgs):void
{
    trace(required);// 1
    trace(optionalArgs); // [2, 3, 4]
    trace(optionalArgs.length);//3
}
usingRest(1, 2, 3, 4);

我也试了一下

package {
import flash.display.Sprite;

public class asProject extends Sprite
{
   private var _square:Sprite;
   private var _circle:Sprite;
   public function asProject()
   {
    var average:Number = average(1, 2, 5, 10, 8, 20);
   }
  
   private function average(...arguments):Number{
    var sum:Number=0;
    for(var i:int=0;i<arguments.length;i++){
     sum +=arguments[i];
    }
    return sum/arguments.length;
   }
}
}