問題タブ [method-signature]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
10 に答える
3598 参照

c++ - 異なるシグネチャを持つ関数の配列

私はこのクラスを持っています:

これらの種類の署名を持つ関数の配列を持つことは可能ですか:

これらの関数が通常の関数ではなく非静的メンバー関数である場合、変更はありますか? これで何かが変わるとは思えません。

ありがとう!

0 投票する
7 に答える
10986 参照

java - メソッド シグネチャの最後のキーワード

重複の可能性:
インターフェイス メソッドの最終引数 - どういう意味ですか?

いくつかの実験を試みているときに、このページで説明されている問題に遭遇しました。

なぜそのような機能が可能なのですか?メソッドをオーバーライドするだけで、最終パラメーターを非最終パラメーターにすることができる理由がわかりません。メソッドシグネチャで final キーワードが無視されるのはなぜですか? また、サブクラスがメソッドの最終変数で使用することを義務付けるにはどうすればよいですか?

0 投票する
5 に答える
3289 参照

java - シグネチャまたは戻り値の型でインターフェイスの具象実装型を参照するメソッドをインターフェイスに含めるにはどうすればよいですか?

次のインターフェイスのようなものを設計しているとします。

method1ただし、 の戻り値の型と のパラメータは、method2だけでなく具体的​​な実装と一致するという警告がありますMyInterface。つまり、MyInterfaceImplその implementsがある場合MyInterface、次のものが必要です。

上記のように、method1コンパイル エラーは発生しませんが、すべての実装で戻り値の型が一致するという保証はありません。もちろんmethod2、署名がインターフェースと一致しないため、コンパイルさえしません。

解決策の候補の 1 つは、ジェネリックで自己参照または再帰的な境界を使用することです。

これにより、1 つの例外を除いて、私が望むものが得られます。他の実装では、間違ったジェネリック型が渡される可能性があります (T具象型との一致を強制するものは何もありません)。したがって、他の誰かが以下を実装する可能性があります。

.* を実装するNotMyInterfaceImpl 必要がありますが、それは問題なくコンパイルされMyInterface<NotMyInterfaceImpl>ます。これにより、何か他のものが必要だと思います。

*LSP に違反しようとしているとは思わないことに注意してください。戻り値の型/パラメータが のサブクラスであっても問題ありませんNotMyInterfaceImpl

だから私はこれを行うためのきれいな方法を知りません。そのため、インターフェイスの実装の詳細に気を配りすぎているのではないかと思いますが、私にはそうは思えません。私が説明したタイプのことを行う方法はありますか、それとも、そこに属さないインターフェイスに何かを入れているような匂いですか?

0 投票する
2 に答える
62 参照

c++ - テンプレート関数 foo(T*) を foo(T) に置き換える

私のコードには、次の関数があります。

新しい実装では、スマート ポインター (のようなもの) も渡していますshared_ptr<>。そのため、関数のシグネチャを次のように変更しました。

コードは正常に動作します。しかし、私が見逃している副作用はありますか?

0 投票する
1 に答える
171 参照

php - PHP:クラスの見出しで関数シグネチャを宣言しますか?

ベスト プラクティスについて- PHP 5.3 以降では、C++ の場合と同様に、関数の署名を宣言し、その下に本体を配置できますか? はいの場合、どのように作るのですか?

例 :

よろしくお願いします。

0 投票する
2 に答える
465 参照

java - Java-メソッドシグネチャを使用してスタックトレースを出力することは可能ですか?

メソッドシグネチャを使用して現在のスタックトレースを出力することは可能ですか?引数と戻り値が異なるだけの同じ名前のメソッドがたくさんある難読化されたコードをデバッグしようとしています。

動作しないもの:

0 投票する
6 に答える
19001 参照

java - Java 関数の署名を計算する

Java クラスのメソッドの署名を計算する方法はありますか? シグネチャ
likeは、を引数として受け取り、 を返す([Ljava/lang/String;)V関数を表します。 String[]
void

署名を計算するルールは何ですか?

0 投票する
1 に答える
90733 参照

c++ - 静的メンバー関数エラー。署名を正しく書く方法は?

現在の署名を使用してg++でコードをコンパイルしようとすると、エラーが発生します。

私の質問は2つあります:

  1. なぜこのようにコンパイルしないのですか?
  2. 正しい署名とは何ですか、またその理由は何ですか?

C ++を使用するとき、署名は常に私の死でした

編集:これもクラスヘッダーファイルです:

0 投票する
1 に答える
83 参照

perl - MooseX :: Method :: Signaturesメソッドをどのように内省して、どのような議論が行われるかを確認しますか?

私はMooseX::Declareとメソッドを使用しています。これはMooseX::Method::Signaturesを使用しています。メソッド「bar」を持つクラス「foo」があり、次のように実装したとします。

ここで、ユーザーに使用するクラス、そのクラスのどのメソッドを使用するか、そしてそのメソッドのどのオプションを使用するかをユーザーに尋ねるフロントエンドインターフェイスを作成します。最初の2つのことを実行できるので、ユーザーがクラスfooとメソッドバーを選択したとします。

しかし、メソッドバーが最初の引数として文字列を取り、デフォルトが1であるflag => boolキーと値のペアを受け取ることをどのように知ることができますか?私のコードはこれを知る必要があるので、ユーザーにこれらのものを提供するように頼むことができます。

0 投票する
3 に答える
2907 参照

c - C のメソッド シグネチャ、静的配列にポインターを渡す

次の配列があります。

この配列のポインターを次のようなメソッドに渡したい:

applyMask 関数のシグネチャは次のとおりです。

しかし、次のコンパイル警告が表示されます。

この警告は何を意味していますか? どうすればそれを取り除くことができますか?