Dart 中dynamic 關鍵字的使用


 

dynamic 》》》直接翻譯過來可以是動態的

 

 

void main()  //dynamic

  dynamic x ='hal';

print(x.runtimeType);//數據類型
print(x);

x = 123;
print(x.runtimeType);
print(x);


var a = 'var';

print(a.runtimeType);

print(a);

// Object

Object o1 ='111';
print(o1.runtimeType);
print(o1);
o1.toString();

print(o1);

 

}

 // dynamic ,var、object 三種類型的區別
// dynamic:所有dart 對象的基礎類型,在大多數情況下,不直接使用它
// 通過它定義的變量會關閉類型檢查,這意味着 dynamix x= 'hal'; x.foo();
// 這段貸款靜態類型檢查不會報錯,但是運行時會crash,因為x 並沒有foo() 方法,所以建議大家在編程時不要直接使用dynamic;
// var: 是一個關鍵字,意思是"我不關心這里的類型是什么",系統會自動判斷類型 runtimeType;
// object: 是Dart 對象的基類,當你定義: object o =xxx ;時這個時候系統會認為o 十個對象,你可以調用o的toString()和hashCode()方法
// 因為Object 提供了這些方法,但是如果你嘗試調用o.foo()時,靜態類型檢查會運行報錯。
// 綜上不難看出dynamic 與object 的最大的區別是在靜態類型檢查上。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM