Dart 是谷歌在 2011 年推出的編程語言,是一種結構化 Web 編程語言,容許用戶經過 Chromium 中所整合的虛擬機(Dart VM)直接運行 Dart 語言編寫的程序,免去了單獨編譯的步驟。之後這些程序將從 Dart VM 更快的性能與較低的啓動延遲中受益。Dart 從設計之初就爲配合現代 web 總體運做而考慮,開發團隊也同時在持續改進 Dart 向 JavaScript 轉換的快速編譯器。Dart VM 以及現代 JavaScript 引擎(V8 等)都是 Dart 語言的首選目標平臺。html
每一個變量都是一個對象,每一個對象是一個類的實例。甚至數字,函數,和null都是對象。全部對象都繼承自Object類web
指定靜態類型(如num前面的例子中)講清意圖,用 tools 開啓靜態檢查,但它是可選的。 (可能注意到當你調試代碼,沒有指定類型的變量會獲得一個特殊的類型: dynamic )編程
Dart解析全部的代碼運行以前。能夠對Dart提供提示,例如,經過使用類型或編譯時間常數來捕獲錯誤或幫助代碼運行更快。api
Dart支持頂級函數(如main())也支持類或者對象(靜態和實例方法分別支持)裏的函數。還能夠在函數裏建立函數(嵌套或局部功能)。數組
相似的,Dart支持頂級變量,以及依賴於類或對象(靜態變量和實例變量)變量。實例變量有時被稱爲域或屬性。異步
與Java不一樣,Dart不具有關鍵字public,protected和private。若是一個標識符如下劃線(_)
開始,那麼它和它的庫都是私有的。async
標識符能夠字母或(_)
開始,或者是字符加數字的組合開頭。編程語言
有時,判斷是一個表達式仍是一個語句會很重要,因此咱們要準確瞭解這兩個單詞。ide
Dart tools可報告兩類問題:警告(warning)和錯誤(error)。警告只是跡象代表,代碼可能沒法正常工做,但他們不會阻止程序的執行。錯誤能夠是編譯時或運行時,編譯時的錯誤阻止代碼執行;當代碼執行時一個運行時的錯誤會致使一個 異常(exception)被拋出。函數
Dart有兩種運行模式:生產 (production) 和檢查 (checked) 。咱們建議在檢查模式開發和調試,並將其部署到生產模式。
Production mode是Dart程序一個速度優化的默認運行模式。Production mode忽略 斷言語句(assert statements) 和靜態類型。
abstract | continue | false | new | this |
as |
default | final | null | throw |
assert | deferred | finally | operator | true |
async | do | for | part | try |
async$ | dynamic | get | rethrow | typedef |
await | else | if | return | var |
break | enum | implements | set | void |
case | export | import | static | while |
catch | external | in | super | with |
class | extends | is | switch | yield |
const | factory | library | sync* | yield$ |
上標1的單詞是內置的標識符(built-in identifiers)。避免使用表格內的標識做爲符標識,並且歷來不使用它們做爲類(class)或類型(type)的名稱。內置標識符存在,以方便從 JavaScript 到 Dart 的移植。例如,若是一些JavaScript代碼中有一個名爲工廠的變量,當你將代碼移植到 Datr 中,你沒必要從新命名它。
上標2的單詞是的Dart1.0版本以後添加異步支持較新的、有限的保留字。不能使用async,await,或yield做爲在標有async,或sync的任何函數體的標識符。欲瞭解更多信息,請參見 異步性支持(Asynchrony support)。
ex1:
var name = 'along';
變量都是引用,變量name包含對一個String的對象值'along' 的引用
未初始化的變量具備null 的初始值,即便數字類型最初變量也是null,由於數字也是對象。
final和const:
若是從不打算改變一個變量,使用 final 或者 const 代替 var 或者其餘類型。一個 final 變量只能被設置一次;一個 const 變量是一個編譯時常數。(延遲初始化變量有助於應用程序啓動的更快)