一些补充说明:
初始化:被赋值
定义: 不仅声明一个变量、函数或类,还分配具体的值或实现;
声明: 不一定赋予初始值;
实例化:把类创建出实际的对象;
1. dart基础语法
1.1. 变量和常量(存储数据)
1.1.1. 变量(存储并可修改数据)
1.1.2. 常量(存储不变的数据)
- const
- final
1.2. 数据类型-数字(可存储数据类型)
1.2.1. num
关键字:num、int、double
注意:num包括int、double
- num:存整数、小数都行
- int:只能存整数
- double:存整数、小数都行
1.2.2. String
1.2.3. bool
隐式转换: 也称为自动类型转换:
- 隐式转换:编译器或解释器自动进行的数据类型转换,无需程序员手动转换
- 显式转换:需要程序员明确指示进行的数据类型转换,通常通过类型转换函数或操作符实现
示例:
void main() {
int a = 10;
double b = a; // 隐式转换:int 转 double
print(b); // 输出: 10.0
}
console.log(true + 0); // 输出: 1
console.log(false + 0); // 输出: 0
void main() {
double a = 10.5;
int b = a.toInt(); // 显式转换:double 转 int
print(b); // 输出: 10
}
1.2.4. List(列表)-重要
和鸿蒙的数组比较类似
想 有序 存储多个值,就要用List;
1.2.5. Map(字典)
和鸿蒙中的对象类似
可以写键值对;
特点:键和值都可以是任意类型;
1.2.6. Dart空安全机制
应用场景:当我们声明变量时,不赋值就会报错;但我们需要一开始本来就不知道什么值,我们需要发网络请求去拿了后,才赋值;所以就要用到空安全机制;
解决办法:就可以写一个? 这就是空安全机制
// 1. 无法正常执行的代码
// String a;
// print(a);
// 2.解决办法:可为空的写法
// String? a;
// print(a);
// 3.真实开发中可以这样写,声明时可以写上 =null
// 解释:就是当它没值时为null,有值时就给具体值
// String intro = null;//很多这样写时报错,就说明它是可能为空的,就要加上? 让他在打印时能输出null
String? intro = null;//很多时候某个值报错
intro = '1222312';
print(intro);
arkTS中的 可选链:是编程中的一个概念,用于安全地访问对象的嵌套属性或方法,而无需显式地检查每一级是否存在。这有助于避免因访问 null
或 undefined
值而导致的运行时错误。