首页 > 其他分享 >rust模式匹配(可驳模式匹配与不可驳模式匹配)

rust模式匹配(可驳模式匹配与不可驳模式匹配)

时间:2023-04-14 17:36:09浏览次数:36  
标签:不可 模式匹配 let rust 可驳 match

rust的一个特性就是模式匹配(OOP编程语言好像都有?),模式匹配常常和变量绑定一起考虑

常见的模式匹配有:

match、if let、while let、let、for、函数参数等等

(for和let我个人认为说是模式匹配,其实有点牵强了,除非这样let (x,y) = (1,2)

可驳与不可驳

可驳模式匹配要求一定要穷尽所有可能,也就是完全覆盖匹配,否则不能通过编译,比如let for match

不可驳模式匹配,可以不穷尽所有模式,比如if let只匹配一个

标签:不可,模式匹配,let,rust,可驳,match
From: https://www.cnblogs.com/jye159X/p/17318987.html

相关文章

  • 文盘Rust -- 用Tokio实现简易任务池
    作者:京东科技贾世闻Tokio无疑是Rust世界中最优秀的异步Runtime实现。非阻塞的特性带来了优异的性能,但是在实际的开发中我们往往需要在某些情况下阻塞任务来实现某些功能。我们看看下面的例子fnmain(){letmax_task=1;letrt=runtime::Builder::......
  • rust数组
    概述rust中数组分为两类:长度固定的array动态数组vectorarray的效率比vector高,array存栈上,vector存堆上arrayfnmain(){//[类型;长度]leta:[i32;5]=[1,2,3,4,5];}数组元素类型要统一,长度要固定数组快速初始化rust下面这种初始化,针对有//类似memset(arr......
  • C # 9.0 的模式匹配
    voidM(objecto1,objecto2){vart=(o1,o2);if(tis(int,string)){}//testifo1isanintando2isastringswitch(o1){caseint:break;//testifo1isanintcaseSystem.String:break;//testifo1isastring}}关系模式 与常数值相......
  • Rust 版本一直是 1.4 或者其它版本
    Rust版本一直是1.4或者其它版本通过rustupupdate升级或者rustupdefault设置版本也不行解决方法删除rust-toolchain这个东西,这个东西覆盖了......
  • Rust中的迭代器的使用:map转换、filter过滤、fold聚合、chain链接
    什么是迭代器Rust中的迭代器是一种强大的工具,它提供了一种灵活、通用的方法来遍历序列。迭代器是实现了Iteratortrait的类型,并需要至少实现一个next函数,用于让迭代器指向下一个迭代对象,并返回一个Option用于指示对象是否存在。fnnext(&mutself)->Option<Self::Item>;迭......
  • RUST——借用与引用
    引用与借用引用可以保证一个对象的引用作为参数而不是所有权fnmain(){lets1=String::from("hello");letlen=cal_len(&s1);println!("Thelengthof{}is{}",s1,len);}fncal_len(s:&String)->usize{//s.push_str(",world");无法通过......
  • Rust 资源汇总
    基础库tokiochronoUI库PCslint-uitaruiWebyew嵌入式slint-uiWeb库rocket数据库ormdieselsqlx......
  • RUST——控制流(if/loop/while)
    1.if语句下面看一个示例:fnmain(){letnumber=6;ifnumber%4==0{println!("numberisdivisibleby4");}elseifnumber%3==0{println!("numberisdivisibleby3");}elseifnumber%2==0{......
  • KMP算法(串的模式匹配算法)(未完待续......)
    KMP算法的实现1.基本原理  在暴力破解算法(BF算法)中,模式串需要一个一个来跟主串进行对比,若有一个不相同,则主串前进一位,继续从头开始进行比较,这样比较的最坏时间复杂度为O(mn),例:‘aaaaaaaaab’和‘aaab’,需要比较到最后一个才能成功,效率太过低下。  KMP算法的原理是,找到模式串......
  • Rust编程语言入门之cargo、crates.io
    cargo、crates.io本章内容通过releaseprofile来自定义构建在https://crates.io/上发布库通过workspaces组织大工程从https://crates.io/来安装库使用自定义命令扩展cargo一、通过releaseprofile来自定义构建releaseprofile(发布配置)releaseprofile:是预......