AS3:是否可以给矢量函数参数一个默认值?

时间:2013-12-04 20:14:32

标签: actionscript-3

我有一个函数,我想让vector参数可选 - 就像这样:

public function test(arg1:int, arg2:Vector.<int> = new Vector.<int>(5)) {}

因此,在该示例中,我希望第一个参数是必需的,并且传入一个可选的向量。如果未提供第二个参数,则创建一个包含5个元素的int向量。它抛出一个编译错误:“参数初始化程序未知或不是编译时常量。”

使参数可选起作用,如:

public function test(arg1:int, arg2:Vector.<int>) {}

但这并不是我想要的。做一些搜索我找到了一个假设的解决方法,这是

public function test(arg1:int, arg2:Vector.<int> = null) {}

但那也不会编译。

我已经在我的代码中继续使用解决方法来完成它,但我仍然很好奇。你有一个向量作为默认参数,以及如何?

1 个答案:

答案 0 :(得分:0)

我不认为这是可能的。可能只是因为编译器从未被编程来处理这种情况,因为可选参数可以与AS3中的许多其他数据类型一起使用。我做了一些研究,其他人报告了与你相同的问题,没有成功在函数声明中设置空向量对象。

如果您还没有,我会简单地执行以下操作:

var myDefaultVector:Vector.<int> = new Vector.<int>(5);

function test(arg1:int, arg2:Vector.<int> = null) {
    if( arg2 == null ) {
        arg2 = myDefaultVector;
    }

    // rest of your code
}

我尝试在Flash中编译上面的代码并成功编译。