0

このインターフェイスを実装するクラスがいくつかあります。

function execute(entity:Entity, ...params):void;

大丈夫ですが、これが欲しいです:

function execute(entity:Entity, ...params = null):void;

すべてのクラスがパラメーターを必要とするわけではないためです。

コンパイルエラーがスローされます。

AS3 で ...params のデフォルト値を設定できないようです。それを行う方法はありますか?

ありがとう。

4

2 に答える 2

3

params宣言の時点でのデフォルト値を空の配列以外に設定する方法はわかりませんが、回避策は次のようになります。

    function exec(entity:Entity, ... extraParams)
    {

        // EDIT: strange that you are getting null, 
        // double check your variable names and if needed you can add:
        if(extraParams == null)
        {
            extraParams = new Array();
        }

        if(extraParams.length == 0) // If none are specified
        {
            // Add default params
            extraParams[0] = "dude";
            extraParams[1] = "man";
        }

        // the rest of the function
    }
于 2013-01-17T23:16:12.200 に答える
0
function exec(entity:Entity, ...params){
    // Set default values if no params passed:
    params = arguments.length > 1
                 ? params
                 : {foo:'defaultFooVal', bar:'defaultBarVal'};
    // ...
}
于 2013-01-18T00:25:20.733 に答える