问题标签 [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.

0 投票
3 回答
22264 浏览

python - `if __name__ == '__main__'` 等价于 Ruby

我是红宝石的新手。我正在寻找从包含我想继续单独使用的工具的模块中导入函数。在 Python 中,我会简单地这样做:

这允许我运行程序或将其作为模块导入以使用a()和/或b()单独使用。Ruby 中的等效范例是什么?

0 投票
8 回答
7879 浏览

c - 在 C 中,main 不需要是一个函数吗?

此代码编译,但毫不奇怪,它在链接时失败(未找到主要代码):

清单 1:

链接错误:\mingw\lib\libmingw32.a(main.o):main.c:(.text+0x106) undefined reference to _WinMain@16'

但是,下面的代码编译和链接很好,但有一个警告:

清单 2:

警告:'main' 通常是一个函数

问题:

  1. 在清单 1 中,链接器应该抱怨缺少“main”。为什么要找 _WinMain@16?

  2. 从清单 2 生成的可执行文件只是崩溃了。是什么原因?

谢谢你的时间。

0 投票
2 回答
900 浏览

java - JUnit4 测试运行器

我的 Java 测试无法编译,我运行它并拥有:

没有junit测试找不到主类(在运行配置中指定)

0 投票
4 回答
18314 浏览

c++ - 为什么要检查 (*argv == NULL)?

在我目前正在学习的数据结构课程中,我们的任务是用 C++ 编写一个网络爬虫。为了让我们领先一步,教授为我们提供了一个从给定 URL 获取源代码的程序和一个简单的 HTML 解析器来去除标签。该程序的主函数接受参数,因此使用 argc/argv。用于检查参数的代码如下:

其中“选项”已使用 argv[1] 中的开关填充,而 argv[2] 及更高版本具有剩余参数。我理解的第一个块很好,如果开关等于字符串,则根据开关做任何事情。我想知道最后一个 if 块的目的是什么。

可能是我的 C++ 有点生疏,但我似乎记得 *argv 等同于 argv[0],基本上意味着它正在检查以确保参数存在。除了我的印象是 argv[0] 总是(至少在大多数实现中)包含正在运行的程序的名称。我突然想到,如果 argc 等于 0,则 argv[0] 可能为空,但在 Google 上搜索我找不到一个确定这是否可能的帖子。

所以我转向你。最后的 if 块检查到底是什么?

编辑:我已经使用所选答案的评论中提供的推理,即有可能故意导致 argv[0] 变为 NULL,或者基于特定于平台的 main 实现变为 NULL。

0 投票
1 回答
117 浏览

java - 解析器作为主文件?

我正在尝试编写一个从文本文件输入数据并具有解析器文件的大型系统。那么,我是否必须编写一个调用解析器的主文件,如果是这样,我将如何调用解析器文件,只需像这样编码?

如果没有,我的选择是什么????感谢您的帮助:) 对于解析器,我将如何指定要在命令行上读取的文本文件。我有一个

我将如何在此语句中编写特定的文本文件????我会替换 commandLineArgs 吗?我忘了这件事。

0 投票
4 回答
6072 浏览

python - PHP 相当于 Python 的 __name__ == "__main__"?

根据标题,是否有 PHP 相当于__name__ == "__main__"

对于通过命令行和通过 Web 请求执行的脚本,是否有一些东西可以使用,或者是否需要自定义函数?

对于那些不熟悉 Python 的人,__name__ == "__main__"允许你定义一个模块文件,如果它是入口点,还有一些东西可以让你运行它。PHP 中的等效结构类似于:


注意zerkms 的答案是最好的,但并不完全正确 - 它应该是:

这比 !count(debug_backtrace()) 快得多,后者本身的速度大约是我的涉及 realpath() 的解决方案的两倍。

0 投票
2 回答
1280 浏览

java - JVM 在哪里以及为什么检查入口方法 main(String args[]) 的返回类型是否为 void 而不是其他任何东西?

我会尽量回答两个,如果我错了,请纠正我:

其中: 如果使用Classname .method() 或使用反射调用静态方法,那么即使更改调用方法的返回类型也没关系,仍然会调用相同的方法。

所以 JVM 可能会在jvm.cpp的一种本地方法中检查这一点

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 抛出

公共静态int main(String[] args) { return 1;
}

java.lang.NoSuchMethodError:线程“main”中的主要异常

因此,Java 可能要求对入口方法 main() 使用相同的签名,以在所有编写的 Java 程序中保持对称性。

0 投票
3 回答
17381 浏览

c++ - wmain 和 main 有什么区别?

所以我有一些课程从

并且有一个wmain功能。

它与我通常在 C/C++ 程序中使用的 main 函数有何不同?

0 投票
1 回答
2989 浏览

c++ - C/C++ 中 main() 有多少个参数

使用多少个参数main?定义的哪些变体main是可能的?

0 投票
2 回答
368 浏览

c - 如何删除主要功能的头部?

我正在尝试从单独的二进制文件中移动一些代码并将其放在我的主程序中。不幸的是,我无法模仿主函数的初始化变量。

我怎样才能创造argcargv手工?有人可以给我一些示例作业吗?

因为它看起来像这样:

我想我可以像这样分配它们:

但它不起作用。谁能告诉我如何做到这一点?