如何在 Dart 中创建可为空的变量

9 dart flutter

我创建了一个模型类,这是我在模型类中的一个变量

Datetime hotel_effect_open_date
Run Code Online (Sandbox Code Playgroud)

但 JSON 响应 hotel_effect_open_date 为空,在我的应用程序中出现错误。我将 DateTime 修改为 String,它正在工作。在 .net core 中创建的 API 中,它看起来像这样,

Nullable<DateTime> hotel_effect_open_date
Run Code Online (Sandbox Code Playgroud)

如何在 DART 语言中创建可为空的变量?

Md *_*din 16

现在 Dart 正在重新设计其类型系统。因此该类型的表达式可以为nullablenon-nullable。像这样:
type? variable; // variable can be null.
示例:

int? a; // a can now be null.
Run Code Online (Sandbox Code Playgroud)

参考Dart 可空性语法决策


Dur*_*rdu 10

总而言之:

\n
int? aNullableInt = null;\n
Run Code Online (Sandbox Code Playgroud)\n
\n

详细解释:

\n

Dart 2...及以上

\n

文档:\n https://dart.dev/null-safety

\n
\n

对于 null 安全性,以下代码中的所有变量\n都是不可为 null 的:

\n

// 在 null-safe Dart 中,这些都不能为 null。

\n
\n
var i = 42; // Inferred to be an int.\nString name = getFileName();\nfinal b = Foo();\n
Run Code Online (Sandbox Code Playgroud)\n
\n

要指示变量可能具有 null 值,只需添加 ? \n类型声明:

\n
\n
int? aNullableInt = null;\n
Run Code Online (Sandbox Code Playgroud)\n

飞镖 <2

\n
int? aNullableInt = null;\n
Run Code Online (Sandbox Code Playgroud)\n

未初始化的变量的初始值为null。即使是数字类型的变量最初也是null, because numbers\xe2\x80\x94like everything else in Dart\xe2\x80\x94are objects.

\n
var i = 42; // Inferred to be an int.\nString name = getFileName();\nfinal b = Foo();\n
Run Code Online (Sandbox Code Playgroud)\n