0

方法があります

public function show (text:Object="", title:String="", body=String=""){
    //blah
}

テキストにデフォルト値を取得させ、他の2つのパラメーターの値を渡したい。私はそれをそのように呼ぶことができる方法があるかどうか疑問に思いました

show(title="sample", body="xyz");

この質問が本当に基本的なものである場合は申し訳ありませんが、Actionscriptを使い始めたばかりで、限られたグーグルスキルでは実りある結果が得られませんでした。

4

3 に答える 3

1

これを行う方法はありません。デフォルト値を手動で送信する以外に:

show ("", "sample", "xyz");

そして、そのようなことは、そもそもデフォルトを設定するという目的を無効にします。一般に、必要な項目を最初に配置して、メソッド シグネチャを整理しようとします。次に変更される可能性が高いデフォルトのアイテム。最後に、変更される可能性が低いデフォルトの項目です。

これは必ずしも簡単な決定ではありません。

于 2012-05-10T02:14:33.087 に答える
1

他の答えとは対照的に、これを行うことができます:

public function show(params:Object):void
{
    var text:String = params.text || "";
    var title:String = params.title || "";
    var body:String = params.body || "";

   // blah
}

その後:

show({ title: "sample", body: "xyz" });

もちろん、コードの可読性と保守性に関連する理由から、これに反対することをお勧めしますが、それでも有用な情報です.

このアプローチを使用することに決めた場合は、メソッドを明確に文書化してください。

// Relevant keys for params:
// text:String, title:String, body:String
// ...describe each here
public function show(params:Object):void
于 2012-05-10T02:54:18.230 に答える
0

アクションスクリプトでこれを行うことはできません

show(title="sample", body="xyz");

私たちが C++ の世界にいた場合、show をオーバーロードして、異なるシグネチャーを持つ 2 つのメソッドを持つことができますが、それもできません。私が通常行うことは、異なるパラメーターを持つ 2 つのメソッドを作成し、基本関数を呼び出すことです。

public function showTextTitleBody(text:Object="",title:String="",body:String="")
{
   //do your thing with the 3 params
}

public function showTitleBody(title:String="",body:String="")
{
   showTextTitleBody("",title,body);
}
于 2012-05-10T02:18:24.810 に答える