AS3:我们可以跳过一个可选参数,并在跳过参数后为参数赋值吗?

Stu*_*cko 3 parameters actionscript overloading actionscript-3

我们可以跳过一个可选参数,并在跳过参数后为参数赋值吗?

例如,我有一个功能:

public function Dialog(message:String,title:String="Note",dialogsize:int=99):void
{
}
Run Code Online (Sandbox Code Playgroud)

我可以使用消息和标题轻松调用该函数:

 Dialog("HELLO","Intro");
Run Code Online (Sandbox Code Playgroud)

有没有办法跳过标题,只是传递对话框大小?我已经尝试过但无法使其正常工作:

Dialog("HELLO",,dialogsize);
Run Code Online (Sandbox Code Playgroud)

是否可以在不使用(rest)参数的情况下跳过一些可选参数?

Lee*_*Lee 6

你可以传递null,一个"默认"参数,AS3会使用默认值-一样的,如果你已经完全忽略它:

Dialog("HELLO",null,dialogsize);
Run Code Online (Sandbox Code Playgroud)

编辑

我的立场得到了纠正 - 我可以发誓,我之前已经成功了,但是成功......但是我的测试(以及@ www0z0k的测试)也表示不然.这意味着,为了完成上述工作,您还需要修改函数的实现.

像这样的东西可以解决这个问题:

public function Dialog(message:String,title:String=null,dialogsize:int=99):void
{
    if(title===null) title = "Note";

}
Run Code Online (Sandbox Code Playgroud)