我有一个函数,我想让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) {}
但那也不会编译。
我已经在我的代码中继续使用解决方法来完成它,但我仍然很好奇。你有一个向量作为默认参数,以及如何?
答案 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中编译上面的代码并成功编译。