資料類型及其操作(0.5小時)
-
-
- Number (數值)
- Strings (字元串)
- Booleans (布爾值)
- Lists (清單)
- Set
- Maps
-
Dart常用資料類型如下:
- numbers
- strings
- booleans
- lists (也被稱之為 arrays)
- set
- maps
Number (數值)
Dart
支援兩種類型的數字,
int
和
double
,
int
用于整數 ,而
double
用于浮點數。
// 整數類型int
int point = 100;
print(point); //100
// 浮點類型double
double precent = 0.78;
print(precent); //0.78
數值類型變量支援轉換為字元串類型
// int -> String
String oneAsString = 1.toString();
print(oneAsString); // 1
// double -> String
String piAsString = 3.14159.toStringAsFixed(2);
print(piAsString); // 3.14
整數類型支援傳統的位移操作符,(<<, >>), AND (&), 和 OR (|) 。
print((5 << 1)); // 10: 0101 << 1 == 1010
print((5 >> 1)); // 2: 0101 >> 1 == 0010
print((5 | 3)); // 7: 0101 | 0011 == 0111
Strings (字元串)
Dart
字元串是 UTF-16 編碼的字元序列。 可以使用單引号或者雙引号來建立字元串:
var s1 = 'Single quotes work well for string literals.';
var s2 = "Double quotes work just as well.";
字元串支援适用 ‘+’ 進行拼接
String str1 = 'Hello ';
String str2 = 'World';
print(str1+str2); // Hello Word
字元串可以轉換成數值型
// String -> int
int one = int.parse('1');
print(one); // 1
// String -> double
double onePointOne = double.parse('1.1');
print(onePointOne); // 1.1
Booleans (布爾值)
Dart
提供了兩個布爾值:
true
和
false
,Dart是類型安全的,
if(非booleanvalue)
和
assert(非booleanvalue)
都會認為非法而抛出異常。
if (1) { //抛出類型異常
// Dart并不會列印,而Java會
print('go inside');
}
Lists (清單)
List
定義的方法:
// List定義
// 1.使用類型推導定義
var letters = ['a', 'b', 'c', 'd'];
print(letters); //[a, b, c, d]
// 2.明确指定類型
List<int> num = [1, 2, 3, 4];
print(num); //[1, 2, 3, 4]
List
常用操作如下:
letters.add('b'); // 追加元素'b', [a, b, c, d, b]
letters.remove('b'); // 删除元素'b', [a, c, d, b],隻删除檢索到的第一個‘b’
letters.removeAt(2); // 删除index為2的元素 [a, c, d, b]
print(letters.length); //4 List中元素個數
Set
Set
定義如下:
// Set定義
// 1.使用類型推導定義
var letters = {'a', 'b', 'c', 'd'};
print(letters); // {a, b, c, d}
// 2.明确指定類型
Set<int> num = {1, 2, 3, 4};
print(num); //{1, 2, 3, 4}
Set
和
List
最大的兩個不同就是:
Set
是無序的,并且元素是不重複的,這個和
java
是一緻的。
Set
常用操作如下:
letters.add('e'); //增加元素 {a, b, c, d, e}
letters.remove('c'); //删除元素 {a, b, d, e}
Maps
映射表,使用鍵值對的形式存儲資料,定義如下:
// Map的定義
// 使用類型推導定義
var map1 = {'name': '小明', 'class': "四班"};
print(map1); // {name: 小明, class: 四班}
// 2.明确指定類型
Map<String, Object> map2 = {'city': '廣州', 'country': '中國'};
print(map2); //{city: 廣州, country: 中國}
Maps
常用操作如下:
// 1.根據key擷取value
print(map2['city']); // 廣州
// 2.擷取所有的entries
print(map2.entries); // (MapEntry(city: 廣州), MapEntry(country: 中國))
// 3.擷取所有的keys
print(map2.keys); // (city, country)
// 4.擷取所有的values
print(map2.values); // (廣州, 中國)
// 5.判斷是否包含某個key或者value
print(map2.containsKey('city')); // true
// 6.根據key删除元素
map2.remove('city');
print(map2); // {country: 中國}
參考
http://dart.goodev.org/guides/language/language-tour
https://book.flutterchina.club/chapter1/dart.html