說明
在 Dart 還有一部分特殊的操作符,用於對象的操作。比如:獲取對象的成員變量之前判斷對象是否存在 “?.”,用於類型轉換使用的 as,等,下面就通過代碼來做詳細的說明,
Dart 中的對象操作符
-
條件成員訪問 ?.
-
類型轉換 as
-
是否指定類型 is,is!
- 級聯操作 ..
條件成員訪問 ?.
class Person{
String name;
int age;
}
void main(){
Person person;
// 這裏會報錯,因爲都初始化出 person
print(person.age);
// 這裏不會報錯, ?. 是先判斷是否存在 person
print(person?.name);
}
類型轉換 as 操作符
class Person{
String name;
int age;
void work(){
print("working...");
}
}
void main(){
var person ;
person = "";
person = new Person();
// 將變量轉爲 Person 對象的格式,如果 不是 Person 對象,就會報錯
(person as Person).work();
}
是否指定類型 is,is! 操作符
class Person{
String name;
int age;
void work(){
print("working...");
}
}
void main(){
var person ;
person = "";
// 判斷 person 變量是 Person 類的實例化出來的
if (person is Person) {
}
// 判斷 person 變量不是 Person 類的實例化出來的
if (person is! Person) {
}
}
.. 級聯 操作
void main(){
var person = new Person();
// 這段表示給 age 和 name 賦值,然後調用 work 方法
person..age=10
..name="Tommi"
..work();
// 也可以這樣子寫,匿名類的方式
new Person()
..age=10
..name="Tommi"
..work();
}
對象中的 call 方法
當我們聲明一個類的時候,如果給這個類指定一個 call 方法,就可以直接使用類名作爲方法名來調用 call 方法了。
class Person {
String name;
int age;
call() {
print("call object");
}
}
void main() {
Person person = new Person();
person(); // call object
}
圖爲接收參數的 call 方法