Dart Records

 · 1 min read

紀錄(Records)

Records提供了輕量且靈活的方式來組合多個值,無需繁瑣的類別定義。

基本概念

1.Records是匿名的、不可變的複合類型

2.允許將多個值捆綁再一起,類似輕量級的Class

語法:

1.使用圓括號()來建立Records

2.可以包含位置參數和命名參數

var person = ('John', age: 30);  // John是位置參數

存取參數:

1.使用.$1、.$2等存取位置參數

2.使用.fieldName存取命名參數

print(person.$1);  // 輸出John
print(person.age); // 輸出30

類型註解:

可為record指定類型

(String, {int age}) typePerson = ('Mike', age: 30))

用途

當需要函式返回都個相關的值時,Record特別有用。像在獲取用戶基本資訊的場景中,可以同時返回姓名和年齡:

(String, int) getPersonInfo() {
  return ('Mike', 30);
}
var (name, age) = getPersonInfo();

相等性

兩個records有相同的結構和值,則被視為相等:

var record1 = (1, 2);

var record2 = (1, 2);

print(record1 == record2); // true