首页 > 其他分享 >rust 更新HashMap

rust 更新HashMap

时间:2023-05-01 23:11:19浏览次数:44  
标签:HashMap 更新 assert let Yellow scores eq rust

在更新HashMap的时候,有以下几个常见的情况

fn main() {
    use std::collections::HashMap;

    let mut scores = HashMap::new();

    scores.insert("Blue", 10);

    // 覆盖已有的值,返回一个Option类型,返回旧的值
    let old = scores.insert("Blue", 20);
    assert_eq!(old, Some(10));

    // 查询新插入的值,通过键查询值,返回一个Option类型,但是是引用
    let new = scores.get("Blue");
    assert_eq!(new, Some(&20));

    // 查询Yellow对应的值,若不存在则插入新值
    let v = scores.entry("Yellow").or_insert(5);
    assert_eq!(*v, 5); // 不存在,插入5

    // 查询Yellow对应的值,若不存在则插入新值
    let v = scores.entry("Yellow").or_insert(50);
    assert_eq!(*v, 5); // 已经存在,因此50没有插入
}

标签:HashMap,更新,assert,let,Yellow,scores,eq,rust
From: https://www.cnblogs.com/jye159X/p/17367165.html

相关文章

  • 推荐算法的知识框架【更新中】
    几年前刚进入行业时,就简单认为不过是wide&deep做精排,双塔FM做召回做粗排,再加上一些周边项目,比如冷启动和多模型融合调参,就组成了一个完整的推荐系统算法部分。再回头思考这一切,不再迷失在各式各样的实现细节中,关注本质,有了更广泛的认识,分为一下几个部分。1.建模方法多阶段的推......
  • rust中动态数组的引用和切片
    真逆天这个b语法1切片与String切片类似,动态数组Vec也能切片,通过&取切片般如果Vec是可变的话,那么他的切片就是不可变的/只读的注意:切片和&Vec是不同的类型,后者仅仅是Vec的引用,并可以通过解引用直接获取Vecfnmain(){letmutv=vec![1,2,3];letslice=&......
  • iOS应用检查更新的最优方法
    虽然AppStore能够提醒用户软件更新,但很多用户不会主动去更新一大堆的软件(我机器上待更新的软件在100个左右)。如果在软件开启时提醒用户更新或者更多中设置“检查更新”项,效果会好很多。1.NSString*version=@"";2.NSURL*url=[NSURLURLWithString:@"http://itunes.a......
  • Linux实用命令(持续更新)
    查看Linux是否为虚拟机方法1:systemd-detect-virt如果是vmware则为vmware的虚拟机,为none则不是虚拟机(是物理机)方法2:dmesg|grep-i"Hypervisordetected"方法3:lscpu|grep"Hypervisorvendor"方法4:dmidecode|grep"ProductName"如果是虚拟机则显示VMwareVirtualPlatf......
  • 如何彻底关闭 Windows 10 自动更新
    彻底关闭Windows10自动更新,分为三步,具体如下:1.组策略禁用Windows更新Win键+R,输入gpedit.msc,启动组策略编辑器。左侧选择[本地计算机配置]->[管理模板]->[Windows组件]->[Windows更新],禁用右侧的[配置自动更新]和[启用通过自动更新建议的更新]选项。2.停......
  • Linux用ntpdate自动同步时间后使用crontab定时任务更新
     两种同步linux系统的时间方法:(1)开启ntpd服务,即配置ntp服务器实现时间同步。(2)利用ntp客户端程序,即ntpdate同步时间。注意:因为ntp服务器本来就会与上层时间服务器进行同步,所以在默认的情况下,ntp服务器不可以使用ntpdate,也就是说ntpdate和ntpd不能同时启用。上一篇已经介绍......
  • 08-react修改state数据驱动视图UI的更新【注意和vue的区别】
    //setState修改状态如果是直接修改页面不会改变使用setState修改数据才会驱动视图的改变//setState的原理:修改玩状态之后会调用render函数importReactDomfrom"react-dom"import{Component}from"react"//react状态不可变要重新创建状态,及覆盖原来的......
  • HashMap的数组长度为何必须是2的n次方
    扩容方便,数字位移计算方便效率高;计算元素下标使用的方式是key的hash&(数组length-1),由于length是2^n,转换成二进制后2^-1最低位就全部都是1,比如111,就相当于是数组长度的掩码,那么hash&111就可以将数组的每一位都覆盖,加入数组长度不是2^n,那么length-1低位不全是1,比如101,那么h......
  • Ubuntu 发行版更新 Linux 内核,修复 17 个安全漏洞
    IT之家近日消息,Canonical于今天面向所有处于支持状态的Ubuntu发行版,发布了 Linux 内核安全更新,累计修复了17个安全漏洞。IT之家近日消息,Canonical于今天面向所有处于支持状态的Ubuntu发行版,发布了Linux内核安全更新,累计修复了17个安全漏洞。本次更新适用于......
  • Ubuntu 发行版更新 Linux 内核,修复 17 个安全漏洞
    IT之家近日消息,Canonical于今天面向所有处于支持状态的Ubuntu发行版,发布了 Linux 内核安全更新,累计修复了17个安全漏洞。IT之家近日消息,Canonical于今天面向所有处于支持状态的Ubuntu发行版,发布了Linux内核安全更新,累计修复了17个安全漏洞。本次更新适用于......