日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Rust Map指南:深入理解、輕松應用

來源: 責編: 時間:2024-01-15 09:21:52 276觀看
導讀大家好,我是漁夫。今天我們來聊聊 Rust 中的map知識,在其他語言一樣,Map 通常指的是一種數據結構和一系列操作,用于將一組值映射到另一組值或執行某些操作,也就是我們常說的鍵值對。接下來一起探討 Rust 中map 的基本用法,

大家好,我是漁夫。7pS28資訊網——每日最新資訊28at.com

今天我們來聊聊 Rust 中的map知識,在其他語言一樣,Map 通常指的是一種數據結構和一系列操作,用于將一組值映射到另一組值或執行某些操作,也就是我們常說的鍵值對。接下來一起探討 Rust 中map 的基本用法,和常見操作以及一些有用的技巧。7pS28資訊網——每日最新資訊28at.com

7pS28資訊網——每日最新資訊28at.com

什么是map?

在 Rust 中map是一種非常重要數據結構,和其他語言類似,也是一種鍵-值存儲的集合。它能夠允許你將一個鍵與一個值相關聯,然后就方便通過鍵來檢索值。下面是簡單例子,在 Rust中,map通常通過std::collections::HashMap來實現。7pS28資訊網——每日最新資訊28at.com

use std::collections::HashMap;fn main() {    let mut scores = HashMap::new();    scores.insert("Alice", 100);    scores.insert("Bob", 90);    scores.insert("Charlie", 95);    let alice_score = scores.get("Alice");    match alice_score {        Some(score) => println!("Alice's score is: {}", score),        None => println!("Alice's score is not available."),    }}

運行結果:7pS28資訊網——每日最新資訊28at.com

Alice's score is: 100[Done] exited with code=0 in 0.689 seconds

在上面的示例中,創建了一個名為scores的HashMap,并且將三個鍵值對插入其中。使用get方法來檢索 "Alice" 的分數。7pS28資訊網——每日最新資訊28at.com

  • 其中 match alice_score { ... } ,作用是它用于匹配alice_score的值,并根據匹配結果執行不同的代碼塊。
  • Some(score) => println!("Alice's score is: {}", score):這是一個匹配分支。它檢查alice_score是否包含Some值。
  • None => println!("Alice's score is not available."):這是另一個匹配分支,用于處理alice_score為None的情況。

在 Rust 語言還是挺好用的這些匹配規則。7pS28資訊網——每日最新資訊28at.com

基本操作

1.插入和更新值

如果你要向HashMap中插入新的鍵值對,可以使用insert方法。如果鍵已經存在,它將把值覆蓋掉。7pS28資訊網——每日最新資訊28at.com

scores.insert("Alice", 105);  // 更新Alice的分數scores.insert("Eve", 80);      // 插入新的鍵值對

2.獲取值

要獲取HashMap中的值,可以使用get方法,和 Java 是不是很類似。如果鍵不存在,它會返回一個Option。7pS28資訊網——每日最新資訊28at.com

// let alice_score = scores.get("test"); // 鍵不存在,將會打印出 Nonelet alice_score = scores.get("Alice");match alice_score {    Some(score) => println!("Alice's score is: {}", score),    None => println!("Alice's score is not available."),}

3.刪除值

還可以對HashMap中的鍵值對進行刪除操作,可以使用remove方法。7pS28資訊網——每日最新資訊28at.com

scores.remove("Bob");

4.遍歷

除上面增刪改操作,還有一個重要的,如果遍歷HashMap中的所有鍵值,這里使用迭代器。7pS28資訊網——每日最新資訊28at.com

use std::collections::HashMap;fn main() {    let mut scores = HashMap::new();    scores.insert("Alice", 100);    scores.insert("Bob", 90);    scores.insert("Charlie", 95);    scores.insert("Alice", 105);    // 遍歷    for (key, value) in &scores {        println!("{}: {}", key, value);    }}

遍歷結果:7pS28資訊網——每日最新資訊28at.com

Charlie: 95Alice: 105Bob: 90[Done] exited with code=0 in 0.521 seconds

除了上面介紹的常見操作以外,其實HashMap還提供了許多有用的方法,比如查找鍵是否存在、獲取鍵的集合、獲取值的集合等等。這些方法在實際開發中,可以根據需要靈活使用,非常方便。7pS28資訊網——每日最新資訊28at.com

5.默認值

首先,來看第一個,默認值,這個作用是如果鍵不存在,你可以使用entry方法來設置默認值。7pS28資訊網——每日最新資訊28at.com

let charlie_score = scores.entry("Charlie").or_insert(0);

6.更新值

另外還可以使用entry方法來更新值,這就更加有意思了,可以讓你在在原有值的基礎上執行操作,用起來也是挺爽是不是。7pS28資訊網——每日最新資訊28at.com

let bob_score = scores.entry("Bob").or_insert(0);*bob_score += 5;

7.排序

最后一個,如果需要按鍵或值對HashMap進行排序,你可以將它們提取到Vec中,然后使用sort方法來排序。7pS28資訊網——每日最新資訊28at.com

let mut score_vec: Vec<(&str, &i32)> = scores.iter().collect();score_vec.sort_by(|a, b| b.1.cmp(a.1));  // 按值降序排序
  • scores.iter() 是使用HashMap的iter方法,返回一個迭代器,該迭代器可以用于遍歷HashMap中的鍵值對。
  • collect方法,作用是將迭代器中的元素收集到一個容器中,這里是將鍵值對收集到了score_vec向量中。

然后現在score_vec向量包含了HashMap中的鍵值對,然后使用sort_by方法來排序向量中的元素。其實就是通過一個閉包完成的,該閉包接受兩個參數a和b,它們分別代表向量中的兩個元素,每個元素都是一個包含鍵和值的元組。7pS28資訊網——每日最新資訊28at.com

元素比較使用cmp方法,它返回一個排序順序,對于整數的話,它可以是Ordering::Less、Ordering::Equal或Ordering::Greater,分別表示“小于”、“等于”或“大于”這樣比較。7pS28資訊網——每日最新資訊28at.com

最后

總結, Rust 中的HashMap是一個強大的數據結構,用于存儲和操作鍵值對。今天主要介紹常規用法、常見操作和一些技巧,希望對你有所幫助。7pS28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-60985-0.htmlRust Map指南:深入理解、輕松應用

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 使用Python、OpenCV和Pyzbar實時攝像頭識別二維碼!

下一篇: 圖片識別無須借助外包API,使用這兩個強大的Python庫也能實現

標簽:
  • 熱門焦點
  • 2023年Q2用戶偏好榜:12+256G版本成新主流

    3月份的性能榜、性價比榜和好評榜之后,就要輪到2023年的第二季度偏好榜了,上半年的新機潮已經過去,最明顯的肯定就是大內存和存儲的機型了,另外部分中端機也取消了屏幕塑料支架
  • 學習JavaScript的10個理由...

    作者 | Simplilearn編譯 | 王瑞平當你決心學習一門語言的時候,很難選擇到底應該學習哪一門,常用的語言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 如何使用JavaScript創建一只圖像放大鏡?

    譯者 | 布加迪審校 | 重樓如果您曾經瀏覽過購物網站,可能遇到過圖像放大功能。它可以讓您放大圖像的特定區域,以便瀏覽。結合這個小小的重要功能可以大大改善您網站的用戶體驗
  • Python異步IO編程的進程/線程通信實現

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • JVM優化:實戰OutOfMemoryError異常

    一、Java堆溢出堆內存中主要存放對象、數組等,只要不斷地創建這些對象,并且保證 GC Roots 到對象之間有可達路徑來避免垃 圾收集回收機制清除這些對象,當這些對象所占空間超過
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 了不起:那你最近學習的什么呢? 了不起學弟:最近在學習C
  • 簽約井川里予、何丹彤,單視頻點贊近千萬,MCN黑馬永恒文希快速崛起!

    來源:視聽觀察永恒文希傳媒作為一家MCN公司,說起它的名字來,可能大家會覺得有點兒陌生,但是說出來下面一串的名字之后,或許大家就會感到震驚,原來這么多網紅,都簽約這家公司了。根
  • 三星Galaxy Z Fold5官方渲染圖曝光:13.4mm折疊厚度依舊感人

    據官方此前宣布,三星將于7月26日在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy Z Flip 5、
  • 榮耀Magic4 至臻版 首創智慧隱私通話 強勁影音系統

    2022年第一季度臨近尾聲,在該季度內,許多品牌陸續發布自己的最新產品,讓大家從全新的角度來了解當今的手機技術。手機是電子設備中,更新迭代十分迅速的一款產品,基
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
欧美视频亚洲视频| 免费日韩av片| 香蕉尹人综合在线观看| 亚洲在线视频网站| 久久九九国产精品| 欧美成人午夜激情| 国产精品video| 国产伪娘ts一区| 91久久精品日日躁夜夜躁国产| 亚洲欧洲一区二区在线观看| av不卡在线| 欧美在线视频免费| 欧美大色视频| 国产精品视屏| 亚洲国产精品一区二区尤物区| 中文亚洲视频在线| 久久精品动漫| 欧美日韩91| 国产一区二区三区在线观看精品| 亚洲激情一区二区| 午夜精品福利一区二区三区av| 老牛影视一区二区三区| 欧美视频在线播放| 在线精品高清中文字幕| 在线中文字幕一区| 久久午夜视频| 国产精品国产一区二区| 在线观看91精品国产麻豆| 亚洲素人一区二区| 卡一卡二国产精品| 国产精品美女久久久浪潮软件| 在线观看精品| 亚洲欧美日韩国产一区| 欧美成人精品在线播放| 国产日韩欧美三级| 在线一区二区三区四区| 巨乳诱惑日韩免费av| 国产精品久久久久久户外露出| 在线国产精品播放| 亚洲欧美日韩精品综合在线观看| 农村妇女精品| 国产视频久久网| 亚洲视频图片小说| 欧美电影资源| 狠狠色综合日日| 亚洲自啪免费| 欧美日韩免费观看一区三区 | 国产视频自拍一区| 日韩网站在线看片你懂的| 久久精品视频va| 国产精品萝li| 亚洲免费成人av| 蜜臀av性久久久久蜜臀aⅴ| 国产欧美一区二区白浆黑人| 一二三区精品福利视频| 免费视频一区二区三区在线观看| 国产精品亚洲综合色区韩国| 夜夜嗨av一区二区三区四区| 老司机成人在线视频| 国产日韩欧美一区二区三区在线观看 | 一区二区三区国产精品| 欧美成人午夜| 亚洲国产三级网| 久久久精品五月天| 国产欧美精品一区| 亚洲女优在线| 国产精品视频999| 亚洲一区二区三区在线看 | 国产精品久久久久91| av成人免费在线| 欧美精品尤物在线| 亚洲精品国产精品久久清纯直播 | 中文无字幕一区二区三区| 欧美精品一区二区三区很污很色的 | 久久视频在线视频| 韩国成人理伦片免费播放| 香蕉乱码成人久久天堂爱免费| 国产精品久久久久久一区二区三区 | 欧美日韩大片一区二区三区| 亚洲黄一区二区| 欧美sm视频| 亚洲国产欧美久久| 欧美mv日韩mv亚洲| 亚洲七七久久综合桃花剧情介绍| 狼人天天伊人久久| 亚洲丰满在线| 欧美成人精品在线观看| 亚洲欧洲午夜| 欧美精品在线一区| 一区二区三区导航| 国产精品毛片a∨一区二区三区| 99www免费人成精品| 欧美日韩精选| 亚洲一区二区三区在线| 国产精品色午夜在线观看| 欧美伊久线香蕉线新在线| 国产手机视频一区二区| 久久免费99精品久久久久久| 亚洲承认在线| 欧美久久久久| 亚洲午夜伦理| 国产日韩欧美综合| 久久久精品国产免大香伊 | 揄拍成人国产精品视频| 蜜桃av久久久亚洲精品| 亚洲日本一区二区三区| 欧美日韩情趣电影| 亚洲私人影院在线观看| 国产精品一二一区| 久久久综合网站| 亚洲人成网在线播放| 欧美视频三区在线播放| 欧美一区二区三区精品| 极品av少妇一区二区| 欧美国产日韩一区二区| 亚洲视频一二三| 国产一区二区三区免费在线观看| 老鸭窝亚洲一区二区三区| 亚洲精品综合在线| 国产精品美女久久| 久久只有精品| 在线视频日本亚洲性| 国产精品一区免费观看| 久久视频一区二区| 99精品视频免费在线观看| 国产欧美一区二区白浆黑人| 久久只精品国产| 一区二区三区视频免费在线观看| 国产日韩欧美精品综合| 欧美成人免费视频| 亚洲女人天堂成人av在线| 国产一区清纯| 欧美日韩精品二区| 久久国产主播| 一区二区三区精品视频在线观看| 国产日韩av一区二区| 欧美精品18videos性欧美| 亚洲欧美怡红院| 亚洲激情在线播放| 国产精品一区在线播放| 欧美成人一区二区| 午夜欧美不卡精品aaaaa| 亚洲国产日韩欧美| 国产精品中文在线| 欧美日韩国产精品成人| 久久国产视频网| 一本一本久久a久久精品综合妖精| 国产精品影片在线观看| 欧美成人精品h版在线观看| 亚洲女性喷水在线观看一区| 亚洲国产高潮在线观看| 国产精品女人久久久久久| 欧美不卡视频一区发布| 欧美一区二区三区四区视频| 99精品久久免费看蜜臀剧情介绍| 国产精品久久久久久妇女6080 | 亚洲成色www8888| 国产欧美日韩视频在线观看| 欧美精品一区二区三区在线播放 | 国内外成人在线| 国产精品美女一区二区在线观看| 欧美成人午夜剧场免费观看| 欧美在线日韩精品| 亚洲欧美成人| 99国产精品| 亚洲第一网站| 韩国av一区二区三区在线观看| 国产精品久久久久久久9999| 欧美激情精品久久久久| 久久激情视频| 亚洲欧美在线免费观看| 日韩亚洲在线| 亚洲国产精彩中文乱码av在线播放| 国产美女一区| 国产精品国产三级国产aⅴ9色| 欧美电影在线| 欧美成人综合在线| 免费h精品视频在线播放| 欧美诱惑福利视频| 亚洲欧美日韩一区二区在线| 在线视频欧美日韩精品| 亚洲久久成人| 亚洲精品欧美一区二区三区| 亚洲第一区色| 亚洲第一精品福利| 永久免费毛片在线播放不卡| 国产三级欧美三级日产三级99| 国产精品久久国产愉拍| 欧美日韩亚洲成人| 欧美日韩久久| 欧美日韩一区视频| 欧美日韩国产综合新一区| 欧美激情第一页xxx| 免费观看成人| 欧美国产精品专区| 欧美激情视频一区二区三区在线播放| 蜜桃精品一区二区三区 | 一区二区三区在线免费视频| 国产一区99| 国产亚洲欧美一区二区三区| 国产亚洲一区精品| 国内精品久久久久久 | 久久女同互慰一区二区三区| 久久久久久尹人网香蕉|