天天看點

Dart語言基礎(資料類型及其操作)

資料類型及其操作(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

繼續閱讀