一、dart 语法糖
1、dart ?.
左边如果为空返回 null,否则返回右边的值。
举例:A?.B
如果 A 等于 null,那么 A?.B 为 null
如果 A 不等于 null,那么 A?.B 等价于 A.B
2、 dart ??
左边如果为空返回右边的值,否则不处理。
举例:A??B
如果 A 等于 null,那么 A??B 为 B
如果 A 不等于 null,那么 A??B 为 A
二、类扩展的形式:extends、mixins、接口与实现 (implements)、扩展 (extension)
1、extends继承
extends具体相关示例如下所示.
class Person {
String _name;
void test() {
_name = "人类";
print(_name);
}
}
class Man extends Person {
@override
void test() {
super.test();
_name = "男";
}
}
2、混入mixins(with)
通过混入mixins的方式,可以把一个类的方法或者属性混入到另外一个类中,供其使用。混入mixins的关键词是使用 with 来进行具体实现
class Man with RunMan {
void test() {
run();// 调用混入方法
}
}
class RunMan {
void run() {
print("跑步");
}
}
3、接口与实现 (implements)
Dart接口的特点:class 就是一个接口、一个类可以同时实现多个接口、实现某个接口,接口中的所有方法和成员变量必须都进行实现、class 被当做接口使用时,class的方法就是接口方法。需要重新实现接口方法,方法前使用@override关键字、class 被当做接口使用时,class的成员变量也需要在子类重新实现,使用@override关键字
class Man implements Day {
@override
String workName;
@override
void work() {
print("工作");
}
}
class Day {
String workName;
void work() {}
}
4、扩展 (extension)
class Man {
void test() {
String string = "1";
string.parseInt();
}
}
extension ParseNumbers on String {
int parseInt() {
return int.parse(this);
}
double parseDouble() {
return double.parse(this);
}
}
执行优先级: 本类 > 混入mixins > 继承extends > 扩展extension