Rust动态数组存放不同类型元素

news/2024/11/29 7:41:03/

文章目录

  • Rust动态数组存放不同类型元素
    • 前言
    • 1.1 使用枚举类型实现
    • 1.2 通过特征对象实现

Rust动态数组存放不同类型元素

前言

  • Vec<T>动态数组类型,是rust的基本集合类型,他只能存放同类型的元素。
    如 vec![1, 2, 5, 18],但是如果vec![1, 28, “xwp”, ‘c’]这种就会报错。
  • 要实现存放不同类型元素,可以通过枚举类型或者特征对象来实现
  • 建议使用特征对象,因为特征对象更加灵活而且可以动态增加类型

1.1 使用枚举类型实现

这里需要在一个Vec中存放两种类型数据,ipv4和ipv6

// 1.枚举类型实现
#[derive(Debug)]
enum IpAddr {V4(String),V6(String),
}
fn main() {let ipadrs = vec![IpAddr::V4("127.0.0.1".to_string()),IpAddr::V6("::1".to_string()),];for ip in ipadrs {show_addr(ip);}
}
fn show_addr(ip: IpAddr) {println!("{:?}", ip);
}

1.2 通过特征对象实现

// 2.通过特征对象实现
trait IpAddr {fn show_addr(&self);
}
struct V4(String);
impl IpAddr for V4 {fn show_addr(&self) {println!("{}", self.0);}
}
struct V6(String);
impl IpAddr for V6 {fn show_addr(&self) {println!("{}", self.0);}
}
fn main() {let ips: Vec<Box<dyn IpAddr>> = vec![Box::new(V4("127.0.0.1".to_string())),Box::new(V6("::1".to_string())),];for ip in ips {ip.show_addr();}
}

http://www.ppmy.cn/news/454982.html

相关文章

揭开生成式人工智能的力量:60+医疗保健应用场景

预计生成式AI在医疗保健领域的增长速度将超过任何其他行业。在医疗技术领域&#xff0c;AI可带来更高效流程、个性化客户互动、更大的创新和更高价值。为了帮助领导者理解这些机会&#xff0c;BCG最近研究了医疗技术中生成式AI的60多个应用场景&#xff1a;从产研和软件开发到业…

Autosar软件组件-Application Layer介绍和SWC(Software Component)类型

参考前文Autosar-软件架构,可知整个架构从上到下分层依次为:应用层(Application Software Layer),运行时环境(Runtime Environment,RTE),基础软件层(Basic Software Layer,BSW),微控制器(Microcontroller)。 Application Layer由各种AUTOSAR Software Componen…

大模型prompt笔记之一,锁定话题和变量使用

prompt对大模型非常重要&#xff0c;使用优秀的prompt提问能得到更高质量的回答&#xff0c;做出与众不同的产品&#xff0c;不管是文字内容&#xff0c;还是图像内容&#xff0c;越是专业&#xff0c;越是需要更高质量的prompt。 优秀的prompt有很高的商业价值。gpt由于算力和…

iPhone手机投屏小米盒子

手机端&#xff1a;iPhone 电视端&#xff1a;小米盒子 哔哩哔哩 投屏方式&#xff1a;使用哔哩哔哩自带投屏

小米路由器mini R1C R1CM openwrt源 换源

** 小米路由器mini R1C R1CM openwrt源 换源 ** 刷的原版的openwrt&#xff0c;镜像openwrt官网上有 不知道为什么自带的源地址下载软件慢的要死&#xff0c;更新软件源都得好一会&#xff0c;在网上找了半天也没找到合适的&#xff0c;最后发现了一个中科大的源但和r1c的架…

玩转小米盒子3:ATV Launcher 设置

玩转小米盒子3&#xff1a;ATV Launcher 设置 图源&#xff1a;mi.com 在玩转小米盒子2&#xff1a;使用第三方桌面一文中我介绍了如何使用第三方桌面ATV Launcher替换小米盒子默认的桌面&#xff0c;如果像我一样一路操作都没问题的话&#xff0c;想必大家已经用上了好用的第…

在小米盒子上观看电脑里的视频文件

在小米盒子上可以直接观看电脑里的视频文件。 很偶然的发现。话说&#xff0c;买了一棵OTG线&#xff0c;打算试一试播放U盘上的视频。一切正常&#xff0c;非常OK。正要退出U盘的时候&#xff0c;发现还有一个外挂设备&#xff0c;按下遥控器的向右&#xff0c;看到设备名赫然…

小米盒子

小米盒子可以做什么事情&#xff1a; 1&#xff0c;可以看在电视上看网络视频 2&#xff0c;可以下载应用&#xff0c;玩游戏&#xff0c;浏览网页等 3&#xff0c;可以追剧 4&#xff0c;可以将android手机&#xff0c;iphone&#xff0c;ipad上的图片&视频投影到电视上浏…