從下面開始學習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 n =5; 也可以簡成 int n = 5; 暫不支持golang或者python 那種高級多定義方法
須要說明的是 var 后就不要寫類型 , 寫了類型 不要var 兩者都寫 var a int = 5; 報錯
定義字符串:
var s1 = 'Single quotes work well for string literals.'; var s2 = "Double quotes work just as well."; var s3 = 'It\'s easy to escape the string delimiter.'; var s4 = "It's even easier to use the other delimiter.";
同樣支持 \n \t \r 這些寫法
以下關於數字定義
數字類型 numbers 有二種形式 一種是int 長度給操作系統有關,,32 位64位,最高長度不一樣。。
一種是double 精度給ieee標准有關。。
int x = 1;
16進制寫法 int hex = 0xDEADBEEF; int bigInt = 34653465834652437659238476592374958739845729
關於字符定義
關於布爾
數據類型詳細說明:
未初始化的變量的初始值為null。甚至具有數字類型的變量最初也是null,因為數字——就像dart中的其他東西一樣——是對象。
程序默認值:如果變量只申明沒有定義只會有默認值 ,轉換類型失敗也會返回默認值 ,稍后補充
int lineCount; assert(lineCount == null); // assert類似於if 語句,出錯后會標飄紅報錯
Final 和 const修飾符 、、// 定義常量
final 可以開始不賦值 只能賦一次 ; 這是兩者的差別。
這里有一個創建和設置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 []`
您可以更改一個非final的非const變量的值,即使它曾經有一個const值: 這兒foo 是var 定義的,,所以值能改變,,
foo = [1, 2, 3]; // Was const [] 這兒返回正確值
你不能改變const變量的值: baz是 const定義的 不能改變
baz = [42]; // Error: Constant variables can't be assigned a value.
區別二:final 是惰性初始化,即在運行時第一次使用前才初始化。而 const 是在編譯時就確定值了。
編譯時常量指的是:字面量(如數字、bool、字符串、List的字面量形式)、其它常量 或者 常量的算術運算,也可以是這些的組合形式(遞歸要求),簡單地說常量就是可以在編譯時確定的值。
