作为一个完整的初学者学习Dart
,我想了解void
函数是否需要main
类型。在官方语言浏览:https://dart.dev/guides/language/language-tour#a-basic-dart-program中,示例不包括void
关键字/类型。
但是在其他地方,我们播种void main() {
...
以下两个代码段具有相同的输出:
main() {
print('Hello World!');
}
在Dart Pad上运行良好:https://dartpad.dartlang.org/fa6f6e5a7b9406e88b31a17e82655ef8
(我们看不到任何编译器警告或建议添加
void
的建议)void main() {
print('Hello World!');
}
void
是一个没有人质疑的约定,还是我们可以排除它而没有任何后果?注意:我知道
void
关键字/类型的历史,我只是想了解我是否可以安全地从更高级的程序中省略void
或是否需要。最佳答案
Dart 2.2 language specification说:
18.4 Scripts
A script is a library whose exported namespace (18.2) includes a top-level function declaration named
main
that has either zero, one or two required arguments.
该规范对其参数的名称和类型(和类型)施加了要求。对其返回类型没有要求,因此使用其他类型(例如
dynamic
,如果您省略void
将会是这种类型)将无效。
关于flutter - Dart main()函数是否需要为void main()或可以省略void类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62346301/