Flutter Dart main()函数需要是void main()还是可以省略void类型?
作为一个完整的初学者学习Flutter Dart main()函数需要是void main()还是可以省略void类型?,flutter,dart,Flutter,Dart,作为一个完整的初学者学习Dart,我想了解main函数是否需要void类型。在官方语言教程中:示例不包括void关键字/类型。 但在其他地方,我们播种void main(){ 以下两段代码具有相同的输出: main(){ 打印(“你好,世界!”); } 在省道垫上运行良好: (我们没有看到任何编译器警告或建议应添加void) void main(){ 打印(“你好,世界!”); } 无效是没有人质疑的惯例,还是我们可以排除它而不产生任何后果 注意:我知道void关键字/类型的历史,我只是想了
Dart
,我想了解main
函数是否需要void
类型。在官方语言教程中:示例不包括void
关键字/类型。
但在其他地方,我们播种void main(){
以下两段代码具有相同的输出:
main(){
打印(“你好,世界!”);
}
在省道垫上运行良好:(我们没有看到任何编译器警告或建议应添加
void
)
void main(){
打印(“你好,世界!”);
}
无效
是没有人质疑的惯例,还是我们可以排除它而不产生任何后果
注意:我知道void
关键字/类型的历史,我只是想了解我是否可以安全地从更高级的程序中省略void
,或者是否需要它。void
用于某种“识别”,但我怀疑它。如果它运行,它应该是100%相同的。上面说:
18.4脚本
脚本是一个库,其导出的命名空间(18.2)包含顶级
名为main
的函数声明,具有零个、一个或两个必需参数
规范对其参数的名称和arity(以及类型)提出了要求。对其返回类型没有要求,因此使用不同的类型(例如动态
,如果省略无效
),将不会产生任何效果。具有以下规则:
始终声明返回类型
()
不要声明方法返回类型
声明方法或函数时,请始终指定返回类型。声明函数的返回类型有助于改进代码库,使分析器能够更充分地检查代码在运行时可能出现的错误
坏:
main() { }
_bar() => _Foo();
class _Foo {
_foo() => 42;
}
void main() { }
_Foo _bar() => _Foo();
class _Foo {
int _foo() => 42;
}
好:
main() { }
_bar() => _Foo();
class _Foo {
_foo() => 42;
}
void main() { }
_Foo _bar() => _Foo();
class _Foo {
int _foo() => 42;
}
返回类型确实无关紧要,但是声明无返回类型等同于使用
dynamic
的返回类型,您可以通过在Dartpad中检查类型或运行main(){print(main.runtimeType);}
来验证它。非常简洁的回答,James,感谢链接到规范!