Flutter 颤振中main()和void main()的区别是什么

Flutter 颤振中main()和void main()的区别是什么,flutter,dart,Flutter,Dart,颤振中的main()和void main()之间有什么区别 在互联网上我能找到的唯一答案是关于C++或类似的东西。 < P>:让我们看看: void main() { print(main.runtimeType); } 将打印()=>void。这意味着一个没有返回void参数的函数 当 将打印()=>动态。这意味着一个没有返回动态参数的函数 main函数的有效返回类型为void: 每个应用程序都必须有一个顶级main()函数,作为应用程序的入口点。main()函数返回void,并为参数提

颤振中的
main()
void main()
之间有什么区别

在互联网上我能找到的唯一答案是关于C++或类似的东西。

< P>:让我们看看:

void main() {
  print(main.runtimeType);
}
将打印
()=>void
。这意味着一个没有返回void参数的函数

将打印
()=>动态
。这意味着一个没有返回动态参数的函数

main
函数的有效返回类型为
void

每个应用程序都必须有一个顶级main()函数,作为应用程序的入口点。main()函数返回void,并为参数提供可选的列表参数

因此,严格地说,没有返回类型(这意味着默认为类型
dynamic
)是错误的。但这是简化的初学者说明,所以也有例外。但如果有疑问,就照章办事。

好吧,让我们看看:

void main() {
  print(main.runtimeType);
}
将打印
()=>void
。这意味着一个没有返回void参数的函数

将打印
()=>动态
。这意味着一个没有返回动态参数的函数

main
函数的有效返回类型为
void

每个应用程序都必须有一个顶级main()函数,作为应用程序的入口点。main()函数返回void,并为参数提供可选的列表参数


因此,严格地说,没有返回类型(这意味着默认为类型
dynamic
)是错误的。但这是简化的初学者说明,所以也有例外。但是如果有疑问,请照章办事。

不同的是,当从
void read()
中的函数返回值时,您不能返回任何类型的值。。 在
read()
中,您可以返回任何类型的值weather is int、double、String、list和set,因为它是动态的您还可以键入
dynamic read()
它与
read()

输出 堆叠


在返回行中,您可以返回任何类型的数据(int、double、String、bool、list等)。

不同的是,当从
void read()中的函数返回值时,您不能返回任何类型的值。。
在
read()
中,您可以返回任何类型的值weather is int、double、String、list和set,因为它是动态的您还可以键入
dynamic read()
它与
read()

输出 堆叠


在返回行中,您可以返回任何类型的数据(int、double、String、bool、list等)。

这个答案并没有直接回答您的问题,因为我看到它已经得到了正确的回答。但是,您可能会发现,Dart应用程序中的
main
函数也可以返回
Future
而不是
void
,因为您可以将
main
函数标记为
async
函数

在颤振应用程序的特定情况下,这意味着您可以在
main()
方法体中运行
runApp(…)
之前执行任何需要执行的操作,甚至可以异步执行。这样,在调用
runApp(…)
之前,启动屏幕将一直显示,直到检索到异步结果为止。例如,根据异步任务的结果设置登录小部件:

Future<void> main() async {
    // Do whatever you need to do here
    final home = await createHomeWidgetDependingOnAsyncResult();
    return runApp(MyApp(home: home));
}
Future main()异步{
//在这里做你需要做的一切
最终主页=等待createHomeWidgetDependingOnAsyncResult();
返回runApp(MyApp(home:home));
}

这个答案并没有直接回答您的问题,因为我看到它已经得到了正确的回答。但是,您可能会发现,Dart应用程序中的
main
函数也可以返回
Future
而不是
void
,因为您可以将
main
函数标记为
async
函数

在颤振应用程序的特定情况下,这意味着您可以在
main()
方法体中运行
runApp(…)
之前执行任何需要执行的操作,甚至可以异步执行。这样,在调用
runApp(…)
之前,启动屏幕将一直显示,直到检索到异步结果为止。例如,根据异步任务的结果设置登录小部件:

Future<void> main() async {
    // Do whatever you need to do here
    final home = await createHomeWidgetDependingOnAsyncResult();
    return runApp(MyApp(home: home));
}
Future main()异步{
//在这里做你需要做的一切
最终主页=等待createHomeWidgetDependingOnAsyncResult();
返回runApp(MyApp(home:home));
}

由于flatter不是命令行应用程序,所以与
动态返回类型
无效返回类型
方法没有任何区别。由于flatter不是命令行应用程序,所以与
无效返回类型
方法没有任何区别。