首页 > 解决方案 > Dart / Flutter 中的类型原语是什么?

问题描述

Dart / Flutter 中的类型原语是什么?

我期待一个包含String, Class, Function(?) 之类的列表。

我似乎在Dart 文档中的任何地方都找不到这个。

具体来说,实际上现在我正在写一些我想将函数作为参数传递的东西,所以我试图弄清楚函数/方法类型是什么(假设这是一个东西),但更一般地说,我想要引用所有 Dart 类型原语。

标签: flutterdart

解决方案


大多数 Dart 类型只是类/接口类型。与 Java 不同,Dart 没有非接口的“原始”值类型,因此在 DartintdoubleString,boolNull普通接口是Object?(以及Object除了Null)的子类型,并且值只是普通对象。

Dart 确实有一些类型类型构造函数,它们不是类/接口类型,或者具有阻止您实现它们的特定规则。尤其是:

  • void- 等效于Object?,但不允许使用该值。您可以从函数返回任何值void,但不应有人使用它。
  • dynamic- 等效于Object?,但没有静态类型检查。您可以将任何值强制转换为dynamic,然后将其用作任何类型,如果您犯了错误,则会出现运行时错误。
  • Never- 所有类型的空子类型。返回的函数Never保证会抛出。
  • type Function(argTypes)- 一个函数类型。有些值是函数。它们仍然是对象,但不是类/接口实例。接口的子类型FunctionObject.
  • FutureOr<type>type-和的超类型Future<type>
  • type?- 可以为空的类型。type和的超类型Null

然后以下接口有限制,阻止您在自己的类中实现它们:NullintdoublenumboolStringFunction

因此,对于函数类型,您可以将它们写为 fx, int Function(int, {int y}).


推荐阅读