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

Rust 学习笔记:关于 Vector 的练习题

Rust 学习笔记:关于 Vector 的练习题

  • Rust 学习笔记:关于 Vector 的练习题
    • 哪个调用会报错?
    • 以下代码能否通过编译?若能,输出是?
    • 以下代码能否通过编译?若能,输出是?
    • 以下代码能否通过编译?若能,输出是?
    • 以下代码能否通过编译?若能,输出是?

Rust 学习笔记:关于 Vector 的练习题

参考视频:

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

哪个调用会报错?

fn find_until(v: &Vec<i32>, n: i32, til: usize) -> Option<usize> {for i in 0..til {if v[i] == n {return Some(i);}}return None;
}

A. find_until(&vec![1, 2, 3], 0, 0)
B. find_until(&vec![1, 2, 3], 1, 4)
C. find_until(&vec![1, 2, 3], 3, 3)
D. find_until(&vec![1, 2, 3], 4, 4)

答:D。

以下代码能否通过编译?若能,输出是?

fn main() {let mut v = Vec::new();let s = String::from("hello ");v.push(s);v[0].push_str("world");println!("original: {}", s);println!("new: {}", v[0]);
}

不能通过编译。s 已经被移动到 v[0] 了,再打印丢失所有权的 s 会报错。

以下代码能否通过编译?若能,输出是?

fn main() {let v = vec![String::from("hello ")];let mut s = v[0];s.push_str("world");println!("{s}");
}

不能通过编译。String 没有 Copy trait,不能移动。

以下代码能否通过编译?若能,输出是?

fn main() {let mut v = vec![1, 2, 3];for i in &mut v {v.push(*i);}println!("{} {} {}", v[3], v[4], v[5]);
}

不能通过编译。即使 v 是可变借用的,也只允许 i 在 for 循环中被改变,而不是 v。因此调用 v.push 是一个所有权错误。

以下代码能否通过编译?若能,输出是?

fn main() {let mut v: Vec<i32> = vec![1, 2, 3];let mut v2: Vec<&mut i32> = Vec::new();for i in &mut v {v2.push(i);}*v2[0] = 5;let a = *v2[0];let b = v[0];println!("{a} {b}");
}

可以通过编译。输出:5 5。

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

相关文章:

  • 视频质量分析时,遇到不同分辨率的对照视频和源视频,分辨率对齐的正确顺序。
  • Docker容器镜像与容器常用操作指南
  • LBM:潜在桥接匹配用于图像重照明
  • Flink 1.13.2 日志配置优化:保留最近 7 天日志文件
  • ControlNet可控生成从理论到实践——保姆级教程
  • 【学习心得】WSL2安装Ubuntu22.04
  • 【Python 正则表达式】
  • 微信小程序全解析:从入门到实战
  • Linux系统发布.net core程序
  • 在Linux内安装虚拟机安装vmnet.tar 报错
  • AWS Elastic Beanstalk部署极简Spring工程(EB CLI失败版)
  • 西门子S7-1200 MC卡使用方法及故障现象分析
  • NGINX 开源与社区动态:从基石到浪潮,持续演进的生态力量
  • 大语言模型 07 - 从0开始训练GPT 0.25B参数量 - MiniMind 实机训练 预训练 监督微调
  • vue基本介绍
  • 【物联网】基于树莓派的物联网开发【3】——最新镜像下载和烧录
  • 2024东北四省ccpc
  • Python 翻译词典小程序
  • SSTI 刷刷刷个题
  • 游戏引擎学习第281天:在房间之间为摄像机添加动画效果
  • 【ArcGIS技巧】根据地块、界址点图层生成界址线
  • 游戏引擎学习第282天:Z轴移动与摄像机运动
  • 基于WinCC flexible 2008、STEP_7和博途之间的项目移植
  • 2035.5.15 并查集
  • 让AI帮我写一个word转pdf的工具
  • 基于SpringBoot的家政服务系统设计与实现(源码+文档+部署讲解)
  • 五件应该被禁止自行托管的事情(5 Things That Should Be Illegal to Self Host)
  • 车载诊断架构 ---车载总线对于功能寻址的处理策略
  • Apache RocketMQ ACL 2.0 全新升级
  • 每日算法 - 【Swift 算法】Two Sum 问题:从暴力解法到最优解法的演进