尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Rust - 链式调用练习

Rust - 链式调用练习
📅 发布时间:2026/6/20 11:57:11
use std::collections::HashSet;fn main() {// 题目1:基本转换 有一个整数数组 [1, 2, 3, 4, 5],使用迭代器方法将每个元素加1,然后收集到一个新的Vec中let arr1 = [1, 2, 3, 4, 5];let result1: Vec<i32> = arr1.iter().map(|x| *x + 1).collect();println!("{:?}", result1);// 题目2:过滤和转换// 有一个字符串数组 ["hello", "", "world", " ", "rust", ""],// 过滤掉所有空字符串和只包含空格的字符串,然后将剩余的字符串转换为大写,最后收集到Vec中。let arr2 = ["hello", "", "world", " ", "rust", ""];let result2: Vec<String> = arr2.iter().filter(|&&s| !s.trim().is_empty()).map(|s| s.to_uppercase()).collect();println!("{:?}", result2);// 题目3:扁平化处理// 有一个二维整数数组 vec![vec![1, 2], vec![3, 4, 5], vec![6]],使用flat_map将其扁平化为一维数组。let arr3 = vec![vec![1, 2], vec![3, 4, 5], vec![6]];let result3: Vec<i32> = arr3.iter().flat_map(|vec_| vec_.iter()).map(|x| *x).collect();println!("{:?}", result3);// 题目4:带索引的过滤// 有一个整数数组 [10, 15, 20, 25, 30],// 使用filter只保留大于15的元素,然后使用enumerate给每个元素标上索引,最后收集为Vec<(usize, i32)>。let arr4 = [10, 15, 20, 25, 30];let result4: Vec<(usize, i32)> = arr4.iter().filter(|&x| *x > 15).enumerate().map(|(idx, v)| (idx, *v)).collect();println!("{:?}", result4);// 题目5:合并数组// 有两个数组:["Alice", "Bob", "Charlie"]和 [30, 25, 35],使用zip将它们合并成一个元组数组 [(名字, 年龄)]。let arr5 = ["Alice", "Bob", "Charlie"];let arr6 = [30, 25, 35];let result5: Vec<(&str, i32)> = arr5.iter().zip(arr6.iter()).map(|(&name, &age)| (name, age)).collect();println!("{:?}", result5);// 题目6:切片选取// 有一个整数数组 1..=10(包含1到10),使用take和skip取第4到第8个元素(包含两端)。let item_4_8: Vec<i32> = (1..=10).skip(3).take(5).collect();println!("{:?}", item_4_8);// 题目7:类型转换// 有一个整数数组 [1, 2, 3, 4, 5],使用map将每个整数转换为其字符串表示,然后收集成一个字符串数组。let arr7 = [1, 2, 3, 4, 5];let result7 = arr7.map(|x| x.to_string());println!("{:?}", result7);// 题目8:循环迭代// 有一个数组 [1, 2, 3],使用cycle方法创建一个无限循环的迭代器,然后取前8个元素收集到Vec中let arr8 = [1, 2, 3];let result8: Vec<i32> = arr8.iter().cycle().take(8).cloned().collect();println!("{:?}", result8);// 题目9:条件转换// 有一个整数数组 [1, 4, 9, 16, 25, 30],使用filter_map过滤出完全平方数(平方根为整数),并计算其平方根let arr9 = [1, 4, 9, 16, 25, 30];let result9: Vec<i32> = arr9.iter().filter_map(|&x| {let v = (x as f64).sqrt() as i32;if v * v == x {Some(v)}else{None}}).collect(); println!("{:?}",result9);// 题目10:连接和去重// 有两个整数数组 [1, 2, 3, 4, 5]和 [4, 5, 6, 7, 8],// 使用chain将它们连接起来,然后去除重复元素,最后排序(可以使用collect收集到Vec后再排序)。let arr10 = [1, 2, 3, 4, 5];let arr11 = [4, 5, 6, 7, 8];let mut result: Vec<i32> = arr10.iter().chain(arr11.iter()).copied().collect::<HashSet<_>>().into_iter().collect();result.sort();println!("{:?}", result);}

相关新闻

  • 基于FPGA的图像去雾算法:完整的仿真测试与高质量Matlab代码
  • 互联网大厂Java小白求职面试实录:从Spring到微服务的全面挑战
  • 导师严选2025 AI论文网站TOP9:继续教育必备测评

最新新闻

  • 工业洁净厂房车间装修隔墙材料规范及施工要点 - 华川洁净
  • Microchip代码保护与安全声明:嵌入式固件防泄露的硬件锁与法律盾
  • 告别复杂图表工具!用Mermaid.js轻松创建专业数据可视化的终极指南
  • 深度学习可视化:从Grad-CAM到训练监控,打开模型黑箱的完整指南
  • 【楼长修楼防水案例】青岛业主自主报修,单人房屋漏水维修全过程 - 青岛防水品牌推荐
  • CANN/ge GE图引擎API验证算子属性

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号