在以前把環境折騰好了以後,咱們開始打基礎功,先把 dart 學好。php
dart 這個語言仍是比較奇怪的,以前根本沒聽過(多是我孤陋寡聞了),聽說有人問 flutter 開發者,爲何使用 dart 語言。開發者回答說:"dart 開發組就在咱們隔壁,因此咱們決定使用 dart" 😭數組
不過不要緊,全部的語言思想都差很少,有經驗的入門仍是比較簡單的。開始進入正題吧~ide
關於後面 dart ,代碼能夠在 dartPad 上運行函數
https://dartpad.dartlang.org/學習
_
開頭,則這個函數或變量屬於這個包私有void main() { // 變量申明 var name = 'enda'; // 變量默認值爲 null int lineCount; print(lineCount); // null // 能夠在定義變量時指定變量的類型,經過指定變量類型,能夠減小編譯和運行時間 String name = 'enda'; // 常量定義 常量定義就不能修改 final firstName = 'E'; // 或者申明類型的常量定義 final int age = 20; const lastName = 'D'; }
dart 內置了幾種常見的數據類型ui
number 類型分爲 int 和 double code
int 的取值範圍爲 -253 to 253 - 1
double 爲 64 位長度的浮點類型對象
number 常見的操做方位包括: +
,-
,*
,/
以及位移 >>
繼承
int 類型轉換索引
void main() { // 字符串轉 int var one = int.parse('1'); assert(one == 1); // 字符串轉浮點 var onePointOne = double.parse('1.1'); // int 轉字符串 String oneAsString = 1.toString(); // double 轉字符串 String piAsString = 3.14159.toStringAsFixed(2); }
可使用單引號或雙引號建立字符串
var str1 = '單引號定義'; var str2 = "雙引號定義"; var str3 = "轉義 \'s ";
字符串鏈接,使用 +
操做符
// 字符串鏈接可使用 + 號 var str4 = str1 +'-'+ str2;
使用 """
或 '''
來定義多行字符串
// 多行字符串 var str5 = ''' 多行字符串的定義 簡單吧 ''';
使用 r
來定義
// 使用 r 修飾,代表是 raw 類型的字符串 var str6 = r"In a raw string, even \n s";
bool 類型只有兩個值 true
和 false
dart 對 bool 值的檢查是強類型檢查,因此不能和 php 同樣去依賴強轉檢查
咱們能夠寫成下面這樣
// 檢查是否爲空字符串 var fullName = ''; assert(fullName.isEmpty); // 檢查是否爲 0 var hitPoints = 0; assert(hitPoints <= 0); // 檢查是否爲 null var unicorn; assert(unicorn == null); // 檢查是否爲 NaN var iMeantToDoThis = 0 / 0; assert(iMeantToDoThis.isNaN);
幾乎每種語言中最多見的集合多是數組或有序的對象。在 dart 中,數組是 LIST 對象
var list = [1,2,3];
dart 的 LIST 索引從 0 開始
list[1] = 10; list.length; // 獲取長度
map 將 key 和 value 關聯到一塊兒,key 必須是惟一的
// 第一種定義 var gifts = { // key value 'first' : 'partridge', 'second': 'turtledoves' }; // 第二種定義 var gifts2 = new Map(); gifts2['first'] = 'partridge';
// 獲取值 gifts['first']; // 判斷 key 是否存在 assert(gifts['fifth'] == null); // 獲取長度 gifts.length;
Dart 中 runes 是 UTF-32 字符集的 string 對象。
codeUnitAt 和 codeUnit 用來獲取 UTF-16 字符集的字符。
使用runes 來獲取 UTF-32 字符集的字符。
Runes input = new Runes( '\u2665 \u{1f605} \u{1f60e} \u{1f47b} \u{1f596} \u{1f44d}');