問題タブ [variadic-functions]
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.
java - SCJP の質問: var-args を使用した Java メソッドのオーバーロード。根拠は何ですか?
次のプログラムが例外をスローするのはなぜですか?
}
メソッド callMethod(Integer[]) は MainClass 型に対してあいまいです
OK、2 つのメソッドのどちらかが機能することはわかりますが (もう一方がコメントアウトされている場合)、プリミティブがメソッドの入力の型と正確に一致しない場合に何が起こるかについて階層があることも知っています。
最初に試みられることは、プリミティブを広げることです。したがって、3 番目の方法があった場合:
コードは長く印刷されます
2 つ目は、プリミティブをボックス化することです。したがって、整数を受け取るメソッドがあれば、それが呼び出されます。
3 番目の優先順位は var-args です。
上記の優先順位に基づいて、2番目の優先順位が当てはまると思います。int が Integer にラップされ、 (Integer...) が呼び出されることを期待します。しかし、もちろん、これは起こりません。代わりに、例外がスローされます。
この例で優先順位付けが適用されない理由を見て、説明できる人はいますか?
乾杯!
c++ - 可変個引数マクロへのデフォルト引数の追加
可変引数マクロで可変引数の前にデフォルト引数を追加することは可能ですか? たとえば、次のようなマクロのバージョンがあります
以前のバージョンに影響を与えないように、可変引数の前にマクロにさらに 2 つのデフォルト引数を追加したいと思います。お気に入り:
どんな助けでも大歓迎です。
java - メソッドの Java 変数番号または引数
可変数のパラメーターを許可するメソッドを宣言することは可能ですか?
メソッドが可変数のパラメーターを許可する必要があることを示す定義で使用されている記号は何ですか?
答え:可変引数
c++ - 可変個引数マクロ:「マクロの実パラメータが多すぎる」を解決する方法。
もともとMacでビルドされたコードの一部をVisualStudio2008 Expressで実行できるようにする作業を行っていましたが、アサートコードに使用する可変個引数マクロで奇妙な問題が発生しました。
マクロは次のように定義されます:
これはすべてgcc(osxの下)で正常に動作し、VS 2005で実行されていましたが、2008では次の警告が表示されます。
呼び出しコードは単純です:
私は私が何か単純なものを見逃していると確信しています、そして私のグーグルfooは私を失敗させています...
ありがとう。
gcc - va_list が宣言されていません
Fedora 11 で動作するコードをコンパイルすると、次のエラーが発生します。
私は使っている:
問題が何であるかを知っている人はいますか?
c - C関数宣言で「...」とはどういう意味ですか?
これは何を意味するのでしょうか?
…とは何なのかわかりません。誰か説明できますか?
iphone - 変数引数を別のメソッドに渡す方法は?
私はグーグルで検索し、変数引数の使い方を知りました。しかし、変数引数を別のメソッドに渡したいです。エラーが発生します。どうやってするか ?
string - LaTeX でコンマ区切りのパラメーターを分割する
LaTeX に似たコマンドを作成しようとして\cite{}
います。これは、このようなパラメーターのコンマ区切りリストを受け入れます
\cite{Wall91, Schwartz93}
パラメータが表すコンマ区切りリストの各項目を別のコマンドに渡し、個々の結果の連結を返したいと思います。私はそれが次のようなものだと想像します:
LaTeX での文字列操作、変数、ループに関する文献は素晴らしいでしょう!
また、カンマを使用して個々の結果を結合する方法はありますか?
ありがとう!
c - 引数の数が異なるcdecl関数を呼び出す
いくつかの入力に基づいて呼び出したい関数があります。関数ごとに引数の数が異なります。言い換えると、
これは少しかさばり、保守が困難です。理想的には、これらは可変個引数関数(たとえば、printfスタイル)であり、varargsを使用できます。しかし、そうではありません。したがって、cdecl呼び出し規約を利用して、パラメーターでいっぱいの構造体を介してスタックを詰め込んでいます。それを行うためのより良い方法があるかどうか疑問に思います。これは厳密に社内(たとえば、単純なツール、単体テストなど)を対象としており、悪意のある攻撃を受ける可能性のある本番コードには使用されないことに注意してください。
例:
出力:
scala - 繰り返しパラメーターを使用するコスト
List
現在、型またはSet
具象クラスのパラメーターを受け取るいくつかのメソッド シグネチャをリファクタリングして、代わりに繰り返しパラメーターList[Foo]
を使用することを検討しています。Foo*
更新:次の推論には欠陥があります。先に進んで
ください...これにより、同じメソッド名を使用して、パラメーターの型に基づいてオーバーロードできます。これはList
orを使用して行うことはできませんでしSet
た。なぜならList[Foo]
、 とList[Bar]
は消去後に同じ型を持っているからです:List[Object]
。
私の場合、リファクタリングされたメソッドscala.Seq[Foo]
は、繰り返されるパラメーターの結果で正常に機能します。すべての呼び出しを変更し、すべてのコレクション パラメーターにシーケンス引数型の注釈を追加する必要があります: baz.doStuffWith(foos:_*)
.
コレクション パラメーターから繰り返しパラメーターへの切り替えが意味的に同等であることを考えると、この変更はパフォーマンスに影響を与えるので注意が必要ですか?
scala 2.7._ と 2.8 の答えは同じですか?