/**
* Dart之对象操作符
* 1、? 条件运算符
* 2、as 类型转换
* 3、is 类型判断
* 4、.. 级联操作(重点)
*/
class Person{
String name;
num age;
Person(this.name, this.age);
void printInfo(){
print('${this.name} ${this.age}');
}
}
void main(){
/**
* 1、条件运算符(?) 如果对象没实例化 或者是null 加上?不会报错
*/
Person p;
p?.printInfo();
/**
* 2、类型转换(as) 在之前的版本中 使用var声明一个属性的时候 再次给这个属性赋予给别的对象会报错,这个时候就用到了as(现在的版本不会报错)
*/
var a;
//现在是String类型
a = "";
a = new Person("a", 1);
//以前版本
(a as Person).printInfo();
//现在版本 可以直接调用
a.printInfo();
/**
* 3、类型判断(is) 判断实例是否属于某个对象 当然 所有的实例都是基于Object
*/
Person person = new Person("李四", 1);
print(person is Person);
print(person is Object);
/**
* 4、级联操作(..)
*/
//我们要对一个对象进行值的修改并打印
person.name = '王五';
person.age = 10;
person.printInfo();
//此方法和上边方法效果相同
person..name='赵六'
..age=20
..printInfo();
}