株洲市天元区建设局网站,wordpress2级目录伪静态,seo哪家强,甘肃网站备案审核时间文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了级联操作符相关的内容#xff0c;本章回中将介绍
空安全.闲话休提#xff0c;让我们一起Talk Flutter吧。 概念介绍
在编译语言中都有空指针或者空对象(null)#xff0c;它们会引起程序的异常。在移动开发中如果… 文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了级联操作符相关的内容本章回中将介绍
空安全.闲话休提让我们一起Talk Flutter吧。 概念介绍
在编译语言中都有空指针或者空对象(null)它们会引起程序的异常。在移动开发中如果使用Java和OC开发程序发生这类异常后会使应用程序被系统强制关闭业内通称FATA异常crash或者叫程序闪退。这种异常是比较严重的程序错误为了避免程序中发生这种异常dart在2.1版本中引入了空类型并且基于空类型引入了安全机制本章回将详细介绍空类型和基于该类型的空安全机制。
使用方法
在dart语言中使用问号表示空类型定义变量或者对象时可以使用空类型通常是在类型的后面加一个问号这样的变量或者对象叫作可空变量或者可空对象非空变量或者非空对象可以赋值给可空变量或者可空对象但是可空变量或者可空对象不能赋值给非空变量或者非空对象。
有了空类型后变量或者对象可能为空因此我们在使用空变量或者空对象时需要判断变量或者对象是否为空不然会引起编译错误这便是安全机制。有了此机制后把空对象引发的异步提前到程序编译阶段这样有助于提前发现和解决程序中的错误。
判断空对象使用?.,!.或者??操作符把这些操作符添加到空对象后面就可以。这些操作符有着不同的含义详细如下
?.: 如果对象为空则不做任何操作否则通过点操作符访问对象的属性或者方法!.: 当前对象肯定不为空并且通过点操作符访问对象的属性或者方法??: 如果对象为空则执行操作符后面的内容否则不做任何操作;
除了这些操作符外还可以使用三元操作符或者if/else语句来判断对象是否为空这些内容是基础知识我就不详细介绍了稍后我们将通过代码来演示操作符的用法。
示例代码 ///定义可以空变量和可空对象int ? nonIntValue;TestObject? nonTObj;///空安全相关内容nonIntValue 3;TestObject temp TestObject(1, good);///非空变量可以赋值给可空变量但是可空变量不能赋值给非空变量// nonTObj temp;// temp nonTObj;///使用可空对象,如果对象为空则不做任何操作不会访问对象的属性adebugPrint(value: ${nonTObj?.a});///变量的值肯定不为空这样做不太好虽然可以通过编译但是会引起运行时异常// debugPrint(value: ${nonTObj!.a});///判断对象是否为空如果为空则括号中的值为temp,否则为nonTObjdebugPrint(value: ${(nonTObj ?? temp).toString()});if(nonTObj null) {debugPrint(nonTobj is null);} else {debugPrint(nonTobj is not null);}///三元操作符(nonTObj null) ? debugPrint(nonTobj is null): debugPrint(nonTobj is not null);上面代码中使用的TestObject是自定义的类型我们没有公布它的源代码大家可以自己定义一个类型或者使用语言自带的String类型总之只要是可以创建对象的类型就可以。
我们在代码中添加了详细的注释这样方便大家理解代码建议大家自己动手去编译程序通过程序的运行结果来分析代码这样有助于大家更好地掌握空类型和空安全相关的内容。
看官们与空安全相关的内容就介绍到这里欢迎大家在评论区交流与讨论!