在Rust中,如果要让一个array或Vec<>,逆序一下,很自然就会想到rev().

一、rev() :真身不见了

官方文档:

fn rev(self) -> Rev<Self> 

需要说明的是,

进去的是array或Vec<>, 出来的是Rev了。类型变了!!

比如:

let a = [1, 2, 3];
let mut iter = a.iter().rev();
assert_eq!(iter.next(), Some(&3));
assert_eq!(iter.next(), Some(&2));
assert_eq!(iter.next(), Some(&1));assert_eq!(iter.next(), None);

今天主要想探讨一下,array、Vec<>经过rev()之后,如何变回来?

二、如何返回真身?

1、array :

    let s = [1_i32, 2, 3];let snew: Vec<i32> = s.into_iter().rev().map(|&x|x).collect();//转成vec![]或let s = ["1", "2", "3"];let snew: Vec<&str> = s.into_iter().rev().map(|&x| x).collect();

如何直接转成[]?

2、Vec<>:

    let s = vec![1_i32, 2, 3];let snew: Vec<i32> = s.into_iter().rev().collect();println!("s :{:?}", snew); //vec![3,2,1],注意s已经不存在了!

Rust: rev()、Vec、其它相关推荐

  1. Rust开发——Vec向量

    1.Vec定义 1.1 向量是可调整大小的数组,可用于动态存储元素序列的数据结构.要求存储的元素必须具有相同的类型.如果需要存储不用类型,可以选择使用带有多个变量的枚举作为在向量中存储不同类型元素的方 ...

  2. Rust开发——Vec与Struct的使用示例

    Vec是Rust的可容器,Struct是结构体,也可以当类使用,这两个是Rust开发中比较常用的两个知识点,下面例子是结合ec与Struct,对ec里的Struct结构元素进行查找.排序.筛选等操作. ...

  3. Rust基础-Vec用法

    Vec 定义了一个动态增长的数组,与java ArrayList类似.基本也定义了增删改查操作: pub fn push(&mut self, value: T) pub fn remove( ...

  4. Rust Wasm 图片转 ASCII 艺术

    有一些隐藏在代码中的 ASCII 有意思的图片,如: /*__ooOoo_o8888888o88" . "88(| -_- |)O\ = /O____/`---'\____.' \ ...

  5. WebAssembly js性能对比

    一般几何里面用相交比较多 简单写个demo测试下WebAssembly 和js的速度, 主要计算的就是射线交线段,主要是测试计算速度 算法不一定对, rust代码如下,刚开始写rust 可能有点不规范 ...

  6. rust反向遍历rev()

    Rust中的迭代器(Iterator)支持反转操作: //反向遍历 println!("{:?}", "-".repeat(10)); //输出:4,3,2,1 ...

  7. Rust学习教程32 - 动态数组Vec

    本文节选自<<Rust语言圣经>>一书 欢迎大家加入Rust编程学院,一起学习交流: QQ群:1009730433 动态数组Vector 动态数组类型用Vec<T> ...

  8. 026 Rust死灵书之实现Vec

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 从 ...

  9. 027 Rust死灵书之Vec内存分配

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source V ...

  10. 035 Rust死灵书之Vec处理零尺寸类型

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...

最新文章

  1. python Django 管理站点1.3
  2. 我是这样给阿里面试官吹 ConcurrentHashMap的
  3. android相对布局底部对齐,Android,在edittext中输入时防止相对布局底部对齐的按钮向上移动...
  4. 在虚拟机上linux系统上上网
  5. html5 呼吸灯效果,jQuery仿地铁线路指示灯效果
  6. 相册权限_苹果手机惊现漏洞?App在未获取相册权限的情况下成功读取照片
  7. oracle判断侦听状态,oracle 监听状态为BLOCKED
  8. 经典算法题每日演练——第七题 KMP算法
  9. failed to accept an incoming connection: connection from 192.168.1.114 rejected, allowed hosts: 1
  10. C# DevExpress ChartControl用法总结
  11. Mac中将Apple移动设备(iPhone或iPad)屏幕录屏转换为gif图片的极简方法
  12. Redis的那些事儿:关系型和非关系型数据库,非关系型数据库的类型,redis数据类型、编码格式、高性能、可以做什么、分布式锁失效的原因,string为采用sds数据类型,为什么是二进制安全的,
  13. Amazon vs Google 云服务
  14. 酷炫的终端模拟器eDEX-UI
  15. 简单快速删除流氓软件(包括注册表)
  16. 图解通信原理与案例分析-31:量子通信,信息的传输载体由确定性的宏观世界走向不确定性的微观世界
  17. udp攻击的PHP木马
  18. html磨砂效果,使用css制作磨砂效果
  19. MathType如何禁止在公式后面自动添加空格
  20. NSX-T 架构-(1)

热门文章

  1. Kurento Tree 简介
  2. Eigen教程(5)
  3. Memcached如何实现高性能批量删除
  4. effective c++ 跨编译单元之初始化次序 笔记
  5. 代码写的又好又快的秘诀
  6. Struts2之命名空间与Action的三种创建方式
  7. 配送中心数据迁移项目(SDC to PDC Data Migartion)
  8. ps 缩放 颜色分类 像素和分辨率学习笔记
  9. 20191119每日一句
  10. 190715每日一句