学习笔记(二十二):ArkTS语言-空安全
概述:
默认情况下,ArkTS中的所有类型都是不可为空的,因此类型的值不能为空。
这类似于TypeScript的严格空值检查模式(strictNullChecks),但规则更严格
let x: number = null; // 编译时错误 let y: string = null; // 编译时错误 let z: number[] = null; // 编译时错误
可以为空值的变量定义为联合类型T | null
let x: number | null = null; x = 1; // ok x = null; // ok if (x != null) { /* do something */ }
后缀运算符!可用于断言其操作数为非空。
class A { value: number = 0; } function foo(a: A | null) { a.value; // 编译时错误:无法访问可空值的属性 a!.value; // 编译通过,如果运行时a的值非空,可以访问到a的属性;如果运行时a的值为空,则发生运行时异常 }
空值合并运算符
??用于检查左侧表达式的求值是否等于null或者undefined。如果是,则表达式的结果为右侧表达式;否则,结果为左侧表达式。
a ?? b等价于三元运算符(a != null && a != undefined) ? a : b。
price:number|null ; // 货品价格 getPrice(){ return this.price??99 // 如果price为null或者undefined返回99否则返回price }
作者:听着music睡
出处:http://www.cnblogs.com/xqxacm/
Android交流群:38197636
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。