Dart / Flutter中的类型原语是什么?
我期待一个包含String
,Class
,Function
(?)的列表。
我在Dart documentation中找不到这个。
具体来说,现在我正在写一些东西,我想把函数作为参数传递进去,所以我试图弄清楚函数/方法类型是什么(假设这是一个东西),但更一般地说,我想引用所有的Dart类型原语。
我期待一个包含String
,Class
,Function
(?)的列表。
我在Dart documentation中找不到这个。
具体来说,现在我正在写一些东西,我想把函数作为参数传递进去,所以我试图弄清楚函数/方法类型是什么(假设这是一个东西),但更一般地说,我想引用所有的Dart类型原语。
2条答案
按热度按时间vc6uscn91#
大多数Dart类型只是类/接口类型。与Java不同,Dart没有不是接口的“原始”值类型,因此在Dart中,
int
,double
,String
,bool
和Null
是Object?
的子类型(以及Object
的子类型,除了Null
),并且值只是普通对象。Dart确实有一些 types 和 type constructors,它们不是类/接口类型,或者有特定的规则阻止你实现它们。特别是:
void
-相当于Object?
,但不允许使用该值。您可以从void
函数返回任何值,但不应该有人使用它。dynamic
-相当于Object?
,但没有静态类型检查。您可以将任何值强制转换为dynamic
,然后将其用作任何类型,如果出错,则会出现运行时错误。Never
-所有类型的空子类型。返回Never
的函数保证抛出。type Function(argTypes)
-函数类型。有些值是函数。它们仍然是对象,但不是类/接口示例。接口Function
和Object
的子类型。FutureOr<type>
-type
和Future<type>
的超类型。type?
-可空类型。type
和Null
的超类型。(int, int)
和({int x, int y})
。然后,以下接口有限制,阻止您在自己的类中实现它们:
Null
,int
,double
,num
,bool
,String
和Function
。因此,对于函数类型,您可以将它们写为,fx,
int Function(int, {int y})
。ddarikpa2#
我想这就是你要找的:dart:core library:
每个Dart程序的内置类型、集合和其他核心功能。
特别是这一部分:类,在那里你可以找到:
String一个UTF-16编码单元的序列。[...]
Object所有Dart对象的基类。[...]
Function所有函数类型的基类。[...]