Dart空安全性的基础知识和操作方法

lxf2023-12-15 10:20:02

Dart 2.12 版本号引进了空安全性(Null Safety)特点,这一特点能够帮助开发人员检验同时避免应用空字符,进而提升程序代码可扩展性和稳定性。本文给大家介绍Dart空安全性的基础知识和操作方法

什么是空安全性

在Dart中,空(null)是一个常见的现象,应用空字符可能会致使程序崩溃甚至造成不可预期的举动。空安全策略致力于帮助开发人员检验同时避免应用空字符。空安全性代表着每一个因素都应具有非空字符或确立申明其可以为空性。

基本上使用方法

申明可空自变量

在Dart中,应用 ? 来标识一个自变量能够为空。比如:

String? nullableString; 

这一变量声明了一个字符串类型的自变量,该自变量能够存放非空的字符串数组或空字符。假如试着浏览这一变量的情况下,它值为空,编译程序也会产生一个警示。

申明不能为空自变量

在Dart中,省去 ? 来标识一个自变量为不能为空。比如:

String nonNullableString; 

这一变量声明了一个字符串类型的自变量,该自变量不可以存放空字符。假如试着给自变量赋空字符,编译程序也会产生一个错误。

Late关键词

很多时候可能还需要在之后的编码中才可以复位一个自变量。在Dart语言中,可以用 late 关键词来延迟时间变量的复位。比如:

late String lateInitializedString;

void main() {
lateInitializedString = "Hello, world!"; 
print(lateInitializedString);
} 

这一程序流程导出的结果就是 Hello, world!。应用 late 关键词,能够延迟时间变量的复位,防止了一些不必要初值测算。

非空肯定

假如你确定一个可以为空自变量在某一时刻不为空,可以用非空肯定(!)来告知编译程序。比如:

String? nullableString;
void main() {
nullableString = "Hello, world!";
print(nullableString!.length);
}

这一程序流程导出的结果就是 13。应用非空肯定,能够告知编译程序一个可以为空自变量在某一时刻不为空。

防止空字符这几种方法

除开应用空安全特性申明可空且不可为空的自变量外,还有其他的这些方法能够避免空字符。

初始值

在Dart中,可以用初始值来预防空字符。 比如:

String name = "";

在这样一个例子中,要是没有特定 name 数值,它初始值为一个空字符串。

if语句

应用if语句能够查验自变量是不是为空,从而减少空字符。比如:

String? nullableString; if (nullableString != null) { print(nullableString.length); } else { print("nullableString is null"); }

在这样一个例子中,应用 if if语句查验 nullableString 是不是为空。它可能不为空,快速打印字符串的长度;它可能为空,快速打印一条信息表明自变量为空。

级联运算符

级联运算符(..)能够帮助防止空字符。比如:

String? nullableString; (nullableString ?? "") ..trim() ..toLowerCase();

在这样一个例子中,采用了 ?? 运算符来检测 nullableString 是不是为空,它可能为空,则采用一个空字符串取代。然后用级联运算符开展字符串处理,包含删除空格和将字符串转换为小写字母。假如 nullableString 为空,便不会实行级联运算符。

结果

Dart的空安全特性能够帮助开发人员检验同时避免应用空字符,进而提升程序代码可扩展性和稳定性。文中阐述了Dart空安全性的基础知识和操作方法,包含怎样申明可空且不可为空的自变量、应用Late关键词延迟时间变量初始化、应用非空肯定告知编译程序一个可以为空自变量在某一时刻不为空,及其防止空字符的这些方法,包含应用初始值、if语句和级联运算符等。

本站是一个以CSS、JavaScript、Vue、HTML为中心的前端开发技术网址。我们的使命是为众多前端工程师者提供全方位、全方位、好用的前端工程师专业知识和技术服务。 在网站上,大家可以学到最新前端开发技术,掌握前端工程师最新发布的趋势和良好实践。大家提供大量实例教程和实例,让大家可以快速上手前端工程师的关键技术和程序。 本站还提供了一系列好用的工具软件,帮助你更高效地开展前端工程师工作中。公司提供的一种手段和软件都要经过精心策划和改进,能够帮助你节约时间精力,提高研发效率。 此外,本站还拥有一个有活力的小区,你可以在社区里与其它前端工程师者沟通交流技术性、交流经验、处理问题。我们坚信,街道的能量能够帮助你能够更好地进步与成长。 在网站上,大家可以寻找你需要的一切前端工程师网络资源,使您成为一名更加出色的网页开发者。欢迎你添加我们的大家庭,一起探索前端工程师的无限潜能!