当前位置: 首页 > news >正文

门源县电子商务网站建设公司在线短网址生成工具

门源县电子商务网站建设公司,在线短网址生成工具,php软件网站建设,网站开发与设计实训总结Rust 学习笔记:关于枚举与模式匹配的练习题 Rust 学习笔记:关于枚举与模式匹配的练习题以下程序能否通过编译?若能,输出是什么?考虑这两种表示结果类型的方式,若计算成功,则包含值 T&#xff1b…

Rust 学习笔记:关于枚举与模式匹配的练习题

  • Rust 学习笔记:关于枚举与模式匹配的练习题
    • 以下程序能否通过编译?若能,输出是什么?
    • 考虑这两种表示结果类型的方式,若计算成功,则包含值 T;若计算失败,则包含错误 E。在 Rust 中,枚举 Result2 被认为比结构体 Result1 更符合习惯。下面哪个说法不是一个合理的原因?
    • 以下程序能否通过编译?若能,输出是什么?
    • 以下哪个选项最能描述这个函数?
    • 以下程序能否通过编译?若能,输出是什么?
    • 两个函数在以下哪种情况下具有相同的行为?
    • 以下函数中使用哪种控制流结构最符合惯用法?
    • 以下函数中使用哪种控制流结构最符合惯用法?

Rust 学习笔记:关于枚举与模式匹配的练习题

参考视频:

  1. https://www.bilibili.com/video/BV1YNmZYkE8D

以下程序能否通过编译?若能,输出是什么?

fn foo(x: &i32) {println!("{x}")
}fn main() {let x = null;foo(x);
}

不能编译。

error[E0425]: cannot find value `null` in this scope

考虑这两种表示结果类型的方式,若计算成功,则包含值 T;若计算失败,则包含错误 E。在 Rust 中,枚举 Result2 被认为比结构体 Result1 更符合习惯。下面哪个说法不是一个合理的原因?

struct Result1<T, E> {ok: Option<T>,err: Option<E>,
}enum Result2<T, E> {Ok(T),Err(E),
}

A. 结构体在运行时占用的内存比枚举更多
B. 结构体的构造语法比枚举更冗长
C. 结构体包含的 Option 类型,仅用于包装结构体
D. 结构体的 ok 和 err 都可以为 None,而枚举至少有一个不为 None

答:C。

以下程序能否通过编译?若能,输出是什么?

enum Location {Point(i32),Range(i32, i32),
}fn main() {let l: Location = Location::Range(0, 5);let n = match l {Location::Point(_) => -1,Location::Range(_, n) => n,Location::Range(0, _) => 0,_ => -2,};println!("{n}");
}

虽然 match 中的最后两个模式不可能比较得到,但程序可以通过编译。

程序匹配第二个模式,输出 5。

以下哪个选项最能描述这个函数?

impl<T> Option<T> {fn unwrap_or(&self, other: T) -> T {match self {Some(t) => t,None => other,}}
}

A. 返回 self 内部的对象(如果存在),否则返回 other
B. 返回一个包含 self 内部对象的新 option(如果存在),否则返回 other
C. 如果 self 尚未包含值,则插入 other
D. 返回对 self 内部对象的引用(如果存在),否则返回 other

答:A。

以下程序能否通过编译?若能,输出是什么?

#[derive(Debug)]
enum Either {Left(usize),Right(String),
}fn main() {let x = Either::Right(String::from("Hello world"));let value = match x {Either::Left(n) => n,Either::Right(s) => s.len(),};println!("{x:?} {value}");
}

不能编译。枚举 x 被部分移动,不能再读取。

两个函数在以下哪种情况下具有相同的行为?

fn decr_twice_v1(n: u32) -> Option<u32> {match n {0 => None,1 => None,n2 => Some(n2 - 2),}
}fn decr_twice_v2(n: u32) -> Option<u32> {if n == 0 {None} else if n == 1 {None} else {Some(n - 2)}
}

A. 对一些输入有效,但不是所有输入
B. 对所有输入有效
C. 对任何输入无效

答:B。

以下函数中使用哪种控制流结构最符合惯用法?

enum Location {Point(i32),Range(i32, i32),
}fn print_range_max(loc: &Location) {// print the second field of Range, if loc is a Range
}

答:if let。

以下函数中使用哪种控制流结构最符合惯用法?

enum Location {Point(i32),Range(i32, i32),
}fn get_start(loc: &Location) {// return the first field of Range or the only field of Point
}

答:match。

http://www.dtcms.com/a/598546.html

相关文章:

  • 河南商务学校网站建设污染网站代码
  • 毕业设计做一个网站怎么做网站模板双语
  • 阿里个人网站自动建站网站源码
  • c语言16:结构体对齐,从原理到大小计算
  • 模板免费网站wordpress手机底部导航
  • 移动通信网络建设实验4:5G基站设备小区配置与开通
  • 咖啡厅网站开发目标谁做的四虎网站是多少钱
  • geotools加载tif 无法关闭tif的流导致tif文件无法删除问题
  • SDK MicroBlaze ELF文件大小分析
  • 学校的网站如何建设方案哈尔滨seo关键词排名
  • 知名企业网站分析 比较评估重庆平台网站建设企业
  • vs做网站如何放背景图流量平台有哪些
  • 浅谈分页偏移量公式:为什么是 `(pageNum - 1) * pageSize`?
  • 解决方案网站排名第三方平台做网站网站
  • C++ 并发与同步速查笔记(整理版)
  • 上海网站建设电话做网站app的工资高吗
  • 南宁在那里推广网站windows10php网站建设
  • 惠州网站建设 英语专业购物网站
  • 苍穹外卖资源点整理+个人错误解析-Day06-微信登陆、商品浏览
  • 此网站不支持下载视频怎么办鞍山58同城找工作 招聘
  • 湛江网警网站 优化 教程
  • ROS1基础入门:从零搭建机器人通信系统(Python/C++)
  • Scikit-learn 入门指南:从零到一掌握机器学习经典库(2025 最新版)
  • 做那个的网站谁有手机如何制作小程序
  • 自己做的网站把密码改忘了怎么办wordpress 表格 插件
  • 成都园林景观设计公司推荐南京seo培训
  • InvivoCrown丨艾美捷代理(货号:SIM0053)BioSIM抗人IL-13抗体(来瑞组单抗生物类似药)研究级探索2型免疫反应的精密研究
  • oracle数据库网站开发网站建设和成本
  • 太原网页设计厦门网站排名优化软件
  • 专题网站建设意义何在网址大全2345