当前位置: 首页 > 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。

相关文章:

  • 视频质量分析时,遇到不同分辨率的对照视频和源视频,分辨率对齐的正确顺序。
  • 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天:在房间之间为摄像机添加动画效果
  • 手机表面细菌菌落总数可能比马桶高10倍,医生详解如何洗手
  • 长三角首次,在铁三赛事中感受竞技与生态的共鸣
  • 外交部:正确认识和对待历史是检验日本能否恪守和平发展承诺的重要标准
  • 技术派|更强的带刀侍卫:从054B型战舰谈谈世界护卫舰发展
  • 外交部:中方期待印巴巩固和延续停火势头,避免冲突再起
  • 言短意长|西湖大学首次“走出西湖”