新前端語言Dart簡易教程
從下面開始學習DART編程
以下是一個簡單的示例:
main(){
var number = 42;
print(number);
}
程序說明,dart是一個強大的腳本類語言,可以不預先定義變量類型 ,自動會類型推倒,主程序必須要先有一個main()主函數方法
以上是基本示例 至於函數返回值 和參數,暫時不講,
在學習Dart語言時,請記住以下事實和概念:
- 在變量中可以放置的所有東西都是對象,而每個對象都是類的實例。無論數字、函數和null都是對象。所有對象都繼承自[Object]類。
- 盡管Dart是強類型的,但類型聲明是可選的,因為Dart可以推斷類型。 在上面的代碼中,數字被推斷為int類型。 如果要明確說明不需要任何類型,請使用[特殊類型dynamic]。
- Dart支持通用類型,如List<int>(整數列表)或List<dynamic>(任何類型的對象列表)。
- Dart支持頂級函數(如main()),以及綁定到類或對象(分別是靜態方法(static)和實例(instance)方法)的函數。您還可以在函數(嵌套或局部函數)中創建函數。
- 類似地,Dart支持頂級變量,以及綁定到類或對象(靜態和實例變量)的變量。實例變量有時被稱為字段或屬性。
- 與Java不同,Dart沒有公開、保護和私有的關鍵字。如果標識符以下劃線(_)開頭,則該標識符對其庫是私有的。有關詳細信息,請參見[庫和可見性]。
- 標識符可以以字母或下劃線(_)開頭,然後是這些字符加上數字的任何組合。
- 有時候,某事物是一個表達(expression )還是一個語句(statement)是很重要的,所以這兩個詞要準確。
- Dart工具可以報告兩種問題:警告和錯誤。警告只是表明您的代碼可能不工作,但它們不會阻止您的程序執行。錯誤可以是編譯時錯誤,也可以是運行時錯誤。編譯時錯誤阻止了代碼的執行;運行時錯誤導致代碼執行時引發異常。
dart 關健字比健多,
下標中列出了Dart中的所有關鍵詞
abstract (1) | do | import (1) | super |
as (1) | dynamic (1) | in | switch |
assert | else | interface (1) | sync* (2) |
async (2) | enum | is | this |
async* (2) | export (1) | library (1) | throw |
await (2) | external (1) | mixin (1) | true |
break | extends | new | try |
case | factory (1) | null | typedef (1) |
catch | false | operator (1) | var |
class | final | part (1) | void |
const | finally | rethrow | while |
continue | for | return | with |
covariant (1) | get (1) | set (1) | yield (2) |
default | if | static (1) | yield* |
deferred (1) | implements (1) |
(1)帶有上標1的單詞是內置標識符。避免使用內置標識符作為標識符。如果嘗試為類或類型名使用內置標識符,則會發生編譯時錯誤。
(2)使用上標2的單詞是在Dart的1.0版本之後添加的與異步支持相關的更新的、有限的保留字。在以async, async*, 或者 sync* 標記的任何函數體中,不能使用async, await, 或者 yield作為標識符。有關更多信息,請參見異步支持。
關鍵字表中的所有其他詞都是保留詞。不能使用保留詞作為標識符。
變量和默認值
申明一個變量很多方法:
var name = "hello"
這兒可以用關健字var 申明,也可以 先申明在定義 比如:strint name = "name“
申明一個變量有很多,比如申明數字型 ,字符型 ,布爾型 ,
以下關於數字定義
int x = 1;
16進制寫法
int hex = 0xDEADBEEF;
int bigInt = 34653465834652437659238476592374958739845729
關於字符定義
關於布爾
數據類型詳細說明:
未初始化的變量的初始值為null。甚至具有數字類型的變量最初也是null,因為數字——就像dart中的其他東西一樣——是對象。
程序默認值:如果變量只申明沒有定義只會有默認值 ,轉換類型失敗也會返回默認值 ,稍後補充
int lineCount;
assert(lineCount == null); // assert類似於if 語句,出錯後會標飄紅報錯
註意:在生產環境中,assert()調用被忽略。在開發環境中當assert(condition) 的condition條件不為真時拋出一個異常。詳細信息請查看[ Assert]。
Final 和 const修飾符 、、// 定義常量
永遠不改量的量,類似與一常不變的數值,請使用final或const修飾他,而不是使用var或其他變量類型。最終變量只能設置一次;const變量是一個編譯時常數。(Const變量是隱式最終變量。)最終的頂級或類變量在第一次使用時被初始化。註意:實例變量可以是final,但不能是const。[實例變量定義在對象一級,它可以被類中的任何方法或者其他類中的方法訪問,但是不能被靜態方法訪問。]
這裏有一個創建和設置final變量的例子:
final name = ‘Bob‘; // Without a type annotation
final String nickname = ‘Bobby‘;
您無法更改final變量的值:
name = ‘Alice‘; // Error: a final variable can only be set once.
//這個是錯誤示例,在使用時final變量是不可以更改的
對於想要在編譯時確定並且不再變的變量,使用const。如果const變量位於類級別,則將其標記為靜態const。在聲明該變量時,將該值設置為編譯時常量,例如數字或字符串字面量、const變量或常量數字算術運算的結果:
const bar = 1000000; // Unit of pressure (dynes/cm2)
const double atm = 1.01325 * bar; // Standard atmosphere
const關鍵字不只是聲明常量變量。您還可以使用它來創建常量值,以及聲明創建常量值的構造函數。任何變量都可以賦一個常量值。
var foo = const [];
final bar = const [];
const baz = []; // Equivalent to `const []`
您可以從const聲明的初始化表達式中省略const,如上面的baz。有關細節,請參見[不要多余的使用const]。
您可以更改一個非final的非const變量的值,即使它曾經有一個const值:
foo = [1, 2, 3]; // Was const []
你不能改變const變量的值:
baz = [42]; // Error: Constant variables can‘t be assigned a value.
新前端語言Dart簡易教程