【问题标题】:What are the type primitives in Dart / Flutter?Dart / Flutter 中的类型原语是什么?
【发布时间】:2020-02-22 09:11:52
【问题描述】:

Dart / Flutter 中有哪些类型原语?

我期待一个包含StringClassFunction(?) 之类的列表。

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

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

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    我认为这就是您要寻找的: dart:core library:

    内置类型、集合和其他核心功能 飞镖程序。

    特别是这部分:Classes,你可以在哪里找到:

    字符串 UTF-16 代码单元序列。 [...]

    Object 所有 Dart 对象的基类。 [...]

    Function 所有函数类型的基类。 [...]

    【讨论】:

    • 其他 Dart 基本类型为 int、double 和 bool。
    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2022-10-23
      • 2016-08-25
      • 2021-11-23
      • 2018-11-05
      • 2021-03-28
      • 1970-01-01
      • 2020-03-19
      • 2022-01-19
      • 2020-08-07
      相关资源
      最近更新 更多