Flutter 中的main()
和void main()
之间有什么区别
我在互联网上能找到的唯一答案是关于C++或类似的东西。
好吧,让我们看看:
void main() {
print(main.runtimeType);
}
将打印CCD_ 3。这意味着一个没有参数的函数返回void。
而
main() {
print(main.runtimeType);
}
将打印CCD_ 4。这意味着一个没有参数的函数返回动态。
main
函数的有效返回类型为void
:
每个应用程序都必须有一个顶级main((函数,该函数用作应用程序的入口点。main((函数返回void,并有一个可选的List<字符串>参数。
源
所以严格地说,没有返回类型(这意味着默认为类型dynamic
(是错误的。但这是简化的初学者说明,所以也有例外。但当有疑问时,照本宣科。
不同的是,当从void read()
中的函数返回值时,不能返回任何类型的值。。而在read()
中,您可以返回任何类型的值,weather是int、double、String、list,还有一个集合因为它是动态的,您也可以键入dynamic read()
,它与read()
相同
void main () {
// print(iifo.runtimeType);
var k = iifo() ;
print(k) ;
}
iifo ( ) {
return ('Stack') ;
}
输出堆叠
在返回行中,您可以返回任何类型的数据(int、double、String、bool、list等(
这个答案不会直接回答您的问题,因为我看到它已经得到了正确的回答。但是,您可能会发现Dart应用程序中的main
函数也可以返回Future<void>
而不是void
,因为您可以将main
函数标记为async
函数。
在Flutter应用程序的特定情况下,这意味着您可以在main()
方法体中运行runApp(...)
之前执行任何需要执行的操作,甚至异步。这样,在调用runApp(...)
之前,启动屏幕将一直显示,直到检索到异步结果为止。例如,根据异步任务的结果设置着陆窗口小部件:
Future<void> main() async {
// Do whatever you need to do here
final home = await createHomeWidgetDependingOnAsyncResult();
return runApp(MyApp(home: home));
}
我发现了问题,我写道:
import 'LanguagesScreen.dart';
代替:
import 'package:flutter_projects/LanguagesScreen.dart';