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

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.xdnf.cn/news/6427.html

相关文章:

  • 微信小程序全解析:从入门到实战
  • 乡村农家游乐小程序源码介绍
  • 使用 SAMLoRA 提取非正规建筑区
  • 精益数据分析(60/126):移情阶段的终极追问——如何用结构化访谈挖掘真实需求
  • 如何实现k8s高可用
  • 抗体药物研发下半场:人源化技术如何突破免疫原性瓶颈?
  • 【滑动窗口】串联所有单词的子串
  • Linux线程
  • 提高绳牵引并联连续体机器人运动学建模精度的基于Transformer的分段学习方法
  • homeassistant安装
  • 加密原理1
  • C#中的typeof操作符与Type类型:揭秘.NET反射的基础
  • AgenticSeek开源的完全本地的 Manus AI。无需 API,享受一个自主代理,它可以思考、浏览 Web 和编码,只需支付电费。
  • OpenSSH 漏洞-SSH 服务器面临 MitM 攻击和拒绝服务攻击的风险
  • 电路中零极点的含义
  • 学习黑客LAN与WAN详解-网络通信的局域与广域之旅
  • 九、HQL DQL七大查询子句
  • 开发日常中的抓包工具经验谈:Charles 抓包工具与其它选项对比
  • 解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs- Manus技术解密
  • 高可靠低纹波国产4644电源芯片在工业设备的应用
  • 通义千问-langchain使用构建(二)
  • pytorch中各种乘法操作
  • 英语六级听力
  • 嵌入式开发学习日志(数据结构--双链表)Day21
  • 全栈项目中是否可以实现统一错误处理链?如果可以,这条链路该如何设计?需要哪些技术支撑?是否能同时满足性能、安全性和用户体验需求?
  • OptiStruct实例:汽车声控建模
  • 零基础学Java——第十一章:实战项目 - 微服务入门
  • JAVA入门-三元运算符
  • 解读RTOS 第八篇 · 内核源码解读:以 FreeRTOS 为例
  • CPSE直击丨飞凌嵌入式亮相2025上海充换电展