Dart 基礎(chǔ)語法-類型

類型

1.記錄(Record)

1. 記錄的基本語法

在 Dart 中汰聋,記錄使用圓括號 () 進(jìn)行聲明门粪,內(nèi)部可以包含多個(gè)值,類似于元組烹困。記錄的字段可以是 位置字段或 命名字段玄妈,位置字段按順序存儲,而命名字段則可以通過名字訪問髓梅。

1.1 位置字段記錄

位置字段記錄類似于一個(gè)固定長度的數(shù)組拟蜻,通過位置(索引)訪問每個(gè)元素。

void main() {
  var record = (1, 'Dart', true);
  print(record);        // 輸出:(1, Dart, true)
  
  // 訪問位置字段
  print(record.$1);     // 輸出:1
  print(record.$2);     // 輸出:Dart
  print(record.$3);     // 輸出:true
}

在這個(gè)示例中枯饿,record 是一個(gè)包含三個(gè)字段的記錄酝锅,字段可以通過 1、2奢方、3 來訪問搔扁。索引從1 開始

1.2 命名字段記錄

命名字段記錄允許為每個(gè)字段提供一個(gè)名稱,從而提高代碼的可讀性蟋字。

void main() {
  var person = (name: 'Alice', age: 30, isStudent: false);
  
  // 訪問命名字段
  print(person.name);        // 輸出:Alice
  print(person.age);         // 輸出:30
  print(person.isStudent);   // 輸出:false
}

在此示例中阁谆,person 記錄的每個(gè)字段都有一個(gè)明確的名稱,允許通過字段名稱來訪問值愉老。

1.3 混合位置字段和命名字段

記錄還支持位置字段和命名字段的混合使用。你可以同時(shí)定義位置字段和命名字段剖效。

void main() {
  var mixedRecord = (1, 'Dart', isCool: true);
  
  // 訪問位置字段
  print(mixedRecord.$1);     // 輸出:1
  print(mixedRecord.$2);     // 輸出:Dart
  
  // 訪問命名字段
  print(mixedRecord.isCool); // 輸出:true
}

2. 記錄的類型推斷與聲明

Dart 可以自動(dòng)推斷記錄的類型嫉入,或者你也可以顯式聲明記錄的類型。對于位置字段璧尸,使用括號括住字段的類型咒林;對于命名字段,使用大括號括住字段名稱和類型爷光。

void main() {
  // 類型推斷
  var record = (1, 'Dart');
  
  // 顯式聲明記錄類型
  (int, String) typedRecord = (1, 'Dart');
  
  // 顯式聲明帶命名字段的記錄類型
  ({int age, String name}) person = (age: 30, name: 'Alice');
  
  print(record);         // 輸出:(1, Dart)
  print(typedRecord);    // 輸出:(1, Dart)
  print(person);         // 輸出:(age: 30, name: Alice)
}

3. 記錄的解構(gòu)

Dart 支持記錄的解構(gòu)垫竞,可以將記錄中的字段解構(gòu)為單獨(dú)的變量。

void main() {
  var (id, name, isActive) = (1, 'Dart', true);
  
  print(id);         // 輸出:1
  print(name);       // 輸出:Dart
  print(isActive);   // 輸出:true
}

解構(gòu)使得我們可以直接從記錄中提取值并賦給單獨(dú)的變量,增強(qiáng)了代碼的簡潔性欢瞪。

4. 記錄的比較

記錄支持值比較(而不是引用比較)活烙。即兩個(gè)包含相同值的記錄被認(rèn)為是相等的,即使它們不是同一個(gè)實(shí)例遣鼓。

void main() {
  var record1 = (1, 'Dart');
  var record2 = (1, 'Dart');
  
  print(record1 == record2); // 輸出:true
}

5. 記錄的用途

臨時(shí)數(shù)據(jù)結(jié)構(gòu):記錄適合用來臨時(shí)存儲一組相關(guān)的數(shù)據(jù)啸盏,而無需定義一個(gè)類。
函數(shù)返回值:記錄可以用來作為函數(shù)的返回值骑祟,特別是在需要返回多個(gè)值時(shí)回懦。
減少代碼冗余:使用記錄可以減少代碼中不必要的類定義,簡化代碼邏輯次企。

6. 記錄的限制

不可變:記錄中的字段是不可變的怯晕,一旦創(chuàng)建不能修改。如果需要修改某個(gè)字段的值缸棵,需要?jiǎng)?chuàng)建一個(gè)新的記錄舟茶。
沒有方法或?qū)傩裕河涗泝H僅是用于存儲數(shù)據(jù)的結(jié)構(gòu),不能像類一樣包含方法或其他復(fù)雜的邏輯蛉谜。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末稚晚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子型诚,更是在濱河造成了極大的恐慌客燕,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狰贯,死亡現(xiàn)場離奇詭異也搓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)涵紊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門傍妒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人摸柄,你說我怎么就攤上這事颤练。” “怎么了驱负?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵嗦玖,是天一觀的道長。 經(jīng)常有香客問我跃脊,道長宇挫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任酪术,我火速辦了婚禮器瘪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己橡疼,他們只是感情好援所,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著衰齐,像睡著了一般任斋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耻涛,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天废酷,我揣著相機(jī)與錄音,去河邊找鬼抹缕。 笑死澈蟆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的卓研。 我是一名探鬼主播趴俘,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奏赘!你這毒婦竟也來了寥闪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤磨淌,失蹤者是張志新(化名)和其女友劉穎疲憋,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梁只,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缚柳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搪锣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秋忙。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖构舟,靈堂內(nèi)的尸體忽然破棺而出灰追,到底是詐尸還是另有隱情,我是刑警寧澤狗超,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布弹澎,位于F島的核電站,受9級特大地震影響抡谐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜桐猬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一麦撵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦免胃、人聲如沸音五。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躺涝。三九已至,卻和暖如春扼雏,著一層夾襖步出監(jiān)牢的瞬間坚嗜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工诗充, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留苍蔬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓蝴蜓,卻偏偏與公主長得像碟绑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子茎匠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容