問題タブ [function-declaration]

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 投票する
4 に答える
144 参照

haskell - タイプエラーが発生するのはなぜですか?

Haskellでは、引数の型が必要な型と一致しないため、関数の定義に問題があります。

たとえば、を取り、の平方根のn :: Int1からの整数のリストを生成する関数を作成したいと思います。したがって、次のような関数が必要になります。floorn

もともと私は関数を次のように定義しました:

sriptをロードすると、タイプが一致しないというエラーメッセージが表示されます。sqrtただし、関数のタイプまたは関数のタイプが一致していないかどうかはわかりませんfloor。エラーメッセージは次のとおりです。

誰かが私にエラーの原因とそれを修正する方法を説明してもらえますか?

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

javascript - すべての関数式が突然関数として認識されなくなった

多くの関数式を含む大量の JavaScript ファイルがあります。突然コンソールに次のエラーが表示されます。

IE で

Firefox の場合

これは私が関数を呼び出す方法です:

これは機能です:

これは、すべての関数式で発生しています。1つを関数宣言に変更すると機能しますが、その中の他の関数式呼び出しで失敗します。一体何?

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

c++ - C++ メンバ関数が宣言されていないエラー。

エラーが表示されます:

cs163hw1.cpp:41:24: エラー: クラス 'menutype' で宣言された 'int menutype::run_prog()' メンバー関数がありません</p>

main.cpp:18:7: エラー: 'struct menutype' には 'run_prog' という名前のメンバーがありません</p>

関連するコードを使用してプログラムをコンパイルしようとすると (appriprait .cpp および .h ファイルにまたがる):

なぜこれが起こっているのかわかりませんが、推測はありますか?

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

c++ - テンプレートクラスの関数のエラーC4430、C2143、およびC2244

テンプレート化された型を取り、それをリスト/配列の最後に追加する関数を作成しようとしていますが、回避策が見つからないようなエラーが発生しています。私はテンプレートを初めて使用するので、テンプレートの使用方法に問題があるのか​​どうかわかりません。

これが私が持っているコードの相対的な部分です:

そして、私はこれらのエラーを受け取ります:

これに関する助けをいただければ幸いです。

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

c++ - C ++で定義func(cv :: Mat&img)を使用して関数をどのように宣言しますか

そのように定義された関数をどのように宣言しますか?

詳細:

main.cppファイルの「main」関数の下に関数「func」を定義しました。コンパイラーが「func」関数が何であるかわからないと文句を言ったので、「main」関数の上にプロトタイプを配置しようとしました。

私は試した

しかし、それはうまくいきませんでした。

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

java - Java関数にコレクションまたは配列を受け入れさせる

いくつかの文字列を受け取り、それらを使って何かを行う関数を作成しようとしています。

文字列のセットがそれらをループすることだけを実行します。今、私はの線に沿って厄介な構造になってしまいます

以来冗長に感じます

String[]型のmyStringsに対して完全に有効なコードになります。

コレクションと配列の両方を許可するfooに受け入れさせることができるクラスはありますか?

0 投票する
0 に答える
121 参照

c++ - 末尾の戻り型の構文は、すべての関数のデフォルトの構文にする必要がありますか?

重複の可能性:
代替関数構文

複雑な関数テンプレートでは、パラメーターで使用するためにC ++ 11の末尾の戻り型構文が必要にdecltypeなる場合があります。そうしないと、スコープに入るのが遅すぎます。

通常の関数であっても、今後は常にこの新しい構文を使用する方が一貫性がありませんか?

次に、最新のコードでは2つではなく1つの関数構文を処理するだけで済み、暗黙のintまたは暗黙のusing宣言を非推奨にしたのと同じように、古い構文を非推奨にすることができます。

新しい構文をより魅力的にするために、より適切なauto名前に置き換えることができます。

そして突然、の署名はmain関数型プログラマーにとって非常に魅力的に見えます。

私は何かを見落としていますか?末尾の戻り型の構文は、私が考えていなかった方法で劣っていますか?

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

c++ - ポインターを配列引数として渡す方法は?

私は次のように機能を遅らせるサードパーティのライブラリを持っています:

このようなものを書くと:

しかし、スタック上でそのような大きな配列を宣言したくありません (OS カーネル環境では非常に危険です)。だから私はこのようなことをしなければなりません:

foo の実装を変更することはできません。どうすればいいですか?

=================

問題は解決しました。私の実際のコードは次のようなものです:

void* から char* への変換は、標準では暗黙的に受け入れられません。したがって、次のコードが機能します。

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

javascript - 関数宣言または関数式

ブロック スコープで関数を定義するときに問題が発生しました。次のプログラムを検討してください。

私は、このプログラムが警告することを期待していましたMerry Christmas!。ただし、Firefox では次のようになりますReferenceError

Opera と Chrome では、期待どおりに挨拶を警告します。

明らかに Firefox はブロック スコープ内の関数を としてFunctionExpression扱い、Opera と Chrome はそれを として扱いFunctionDeclarationます。

私の質問は、Firefox の動作が異なるのはなぜですか? どちらの実装がより論理的ですか? 規格に準拠しているのはどれですか?

JavaScript の宣言は巻き上げられることを理解しています。そのため、同じ関数が同じスコープ内の 2 つ以上の異なるブロックで宣言されている場合、名前の競合が発生します。

ただし、次のようなことができるように、関数が宣言されるたびに関数を再宣言する方が論理的ではないでしょうか。

これは、上で説明したブロックのスコープの問題を解決することに加えて、非常に役立つと思います。

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

lua - 他の関数から前の関数と後の関数の両方を参照しますか?

実際に作業を行う前に、スクリプトを構成するためのインタラクティブなテキストメニューを表示するLuaスクリプトがあります。main_menu()ユーザーが選択できるオプションを備えた関数があり、それぞれが異なるsubmenu()関数を呼び出します。それらの異なるsubmenu()関数のそれぞれがそれぞれのことを実行してから、関数に戻ります(呼び出します)main_menu()。最後に、各関数には、settings設定のテーブルである、渡されるパラメーターがあります。

物事は次のようになります。

問題はattempt to call nil、(私が知る限り)関数がスクリプトの後半で定義されている別の関数を呼び出すたびにエラーが発生することです。したがって、上記の例のように、を定義submenu()してから main_menu()main_menu()を呼び出すのに問題がないが、を呼び出すことsubmenu()submenu()できない場合main_menu()

FWIW、これはMinecraftのComputerCraftmodで実行されています。