問題タブ [main]
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.
python - `if __name__ == '__main__'` は Ruby で同等
私はRubyが初めてです。個別に使用し続けたいツールを含むモジュールから関数をインポートしようとしています。Python では、単純に次のようにします。
これにより、プログラムを実行したり、モジュールとしてインポートしたり、個別に使用a()
したりできb()
ます。Rubyで同等のパラダイムは何ですか?
c - Cでは、mainは関数である必要はありませんか?
このコードはコンパイルされますが、驚くことではありません。リンク中に失敗します(メインが見つかりません)。
リスト1:
リンクエラー:\ mingw \ lib \ libmingw32.a(main.o):main.c:(。text + 0x106)_WinMain@16への未定義の参照 '
ただし、以下のコードは正常にコンパイルおよびリンクされ、警告が表示されます。
リスト2:
警告:「メイン」は通常関数です
質問:
リスト1では、リンカーは「メイン」が欠落していると文句を言うはずです。なぜ_WinMain@16を探しているのですか?
リスト2から生成された実行可能ファイルは単にクラッシュします。理由は何ですか?
御時間ありがとうございます。
java - JUnit4 テストランナー
Java テストがコンパイルされません。実行すると、次のようになります。
junit テストでメイン クラスが見つかりませんでした (実行構成で指定)
c++ - (* argv == NULL)かどうかを確認するのはなぜですか?
私が現在受講しているデータ構造クラスでは、C++でWebクローラーを作成する必要があります。有利なスタートを切るために、教授は、指定されたURLからソースを取得するプログラムと、タグを取り除くための単純なHTMLパーサーを提供してくれました。このプログラムのmain関数は引数を受け入れるため、argc/argvを使用します。引数のチェックに使用されるコードは次のとおりです。
「option」にargv[1]のスイッチが設定されており、argv[2]以降には残りの引数があります。私が理解している最初のブロックは、スイッチが文字列と等しい場合、スイッチに基づいて何でも実行します。最後のifブロックの目的は何なのか気になります。
私のC++はやや錆びている可能性がありますが、*argvはargv[0]と同等であり、基本的には引数が存在することを確認していることを思い出しているようです。argv [0]には常に(少なくともほとんどの実装では)実行中のプログラムの名前が含まれているという印象を受けた場合を除きます。argcが0の場合、argv [0]がnullになる可能性がありますが、Googleで検索しても、それが可能かどうかを判断する投稿は1つも見つかりませんでした。
そして、私はあなたに目を向けます。ブロックチェックの場合、その最終的なものは正確には何ですか?
編集:選択した回答のコメントに記載されている理由を使用しました。プラットフォーム固有のmainの実装に基づいて、意図的にargv [0]をNULLにするか、そうでなければNULLにする可能性があるということです。
java - メインファイルとしてのパーサー?
テキストファイルからデータを入力し、パーサーファイルを持つ大きなシステムを作成しようとしています。それで、パーサーを呼び出すメインファイルを作成する必要がありますか?そうであれば、パーサーファイルをどのように呼び出すか、このようにコーディングしますか?
そうでない場合、私のオプションは何でしょうか???? ご協力いただきありがとうございます:)パーサーの場合、コマンドラインで読み取るテキストファイルをどのように指定しますか。私は
このステートメントに特定のテキストファイルを書き込むにはどうすればよいですか???? commandLineArgsを置き換えますか?これを忘れてしまいました。
java - JVM は、エントリ メソッド main(String args[]) の戻り値の型が void であり、それ以外ではないことを確認する場所と理由は?
私は両方に答えようとします。間違っている場合は修正してください。
場所: Classname .method() またはリフレクションを 使用して静的メソッドが呼び出されている場合、呼び出し元のメソッドの戻り値の型を変更しても、同じメソッドが引き続き呼び出されます。
したがって、JVMはおそらくjvm.cppのネイティブメソッドの1つでこれをチェックします
methodHandle m (THREAD, init_klass->find_method(vmSymbols::object_initializer_name(),> vmSymbols:: void_method_signature() ));
if (m.is_null()) { ------ THROW_MSG_0 …………..
理由: main から値を返すのは無意味ですが、java はそれに対して何もしませんが、たとえば、main の戻り値の型を int に変更しようとすると、JVM がスローします。
public static int main(String[] args) { return 1;
}java.lang.NoSuchMethodError: スレッド「main」でのメイン例外
そのため、Java は、記述されたすべての Java プログラムで対称性を維持するために、エントリ メソッド main() に同じ署名を使用することを義務付けている可能性があります。
c++ - main()にはC /C++でいくつの引数がありますか
何個の引数が使用されmain
ますか?main
どのような定義のバリエーションが可能ですか?
c - メイン関数のヘッドを削除するにはどうすればよいですか?
一部のコードを別のバイナリから移動して、メイン プログラム内に配置しようとしています。残念ながら、メイン関数の初期化変数を模倣することはできません。
どうすれば手で作成できますargc
かargv
? 誰かが私にいくつかの例の割り当てを与えることができます.
それは次のように見えるからです:
私はそれらを次のように割り当てることができると考えました:
しかし、うまくいきません。これがどのように行われるのか、誰か教えてもらえますか?