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

建设部网站官网办事厅cn域名与com域名

建设部网站官网办事厅,cn域名与com域名,长沙市,广东省建设厅网站怎么查询证件✨重磅!盹猫的个人小站正式上线啦~诚邀各位技术大佬前来探秘!✨ 这里有: 硬核技术干货:编程技巧、开发经验、踩坑指南,带你解锁技术新姿势!趣味开发日常:代码背后的脑洞故事、工具测…

✨重磅!盹猫的个人小站正式上线啦~诚邀各位技术大佬前来探秘!✨

这里有:

  • 硬核技术干货:编程技巧、开发经验、踩坑指南,带你解锁技术新姿势!
  • 趣味开发日常:代码背后的脑洞故事、工具测评,让技术圈不再枯燥~
  • 独家资源分享:开源项目、学习资料包,助你打怪升级快人一步!

👉 点击直达→ 盹猫猫的个人小站 👈
🌟 来逛逛吧,说不定能挖到你正在找的技术宝藏哦~

目录

⭐ 前言

⭐ 环境准备

⭐ 代码步骤

🔶 自定义打印

🔶 自定义转换

🔶 疑问解答

📖 总结


欢迎来到 盹猫(>^ω^<)的博客

本篇文章主要介绍了

[📚重学Rust📚之结构体打印和转换]
❤博主广交技术好友,喜欢文章的可以关注一下❤

⭐ 前言

        编写这个系列文章的目的是为了巩固所学的Rust知识,对Rust中庞大的依赖体系进行整理,当然,如果文章内容可以帮助到你,那当然求之不得了😁

记录结构体自定义打印和转换操作

🌹学而时习之,不亦说乎!🌹

⭐ 环境准备

         除了基础的Cargo环境之外,你还需要准备以下环境,如果你没有安装Cargo环境可以通过盹猫脚本库进行Rust环境的快速搭建工作:

[package]
name = "ref_test"
version = "0.1.0"
edition = "2024"[dependencies]

因为主要用到标准库中的依赖,所以不用添加任何其它依赖项.

⭐ 代码步骤

开始之前先声明一个结构体,这里用的是User结构体:

struct User {//姓名name: String,//年龄age: i32,
}
impl User {pub fn new(name: String, age: i32) -> User {User {name: name,age: age,}}
}

通过Impl User 可以为User实现自定义的new方法(构造函数).

🔶 自定义打印

        在Rust中除了可以使用#[derive(Debug)] 标注进行实现快捷打印之外,还可以进行自定义的打印操作(类似于Java中的toString方法),实现的代码如下:

impl Display for User {fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {f.write_str(&format!("{}{}{}", "[", self.name, "]"))}
}

需要为自定义的结构体实现Display这个Trait,通过f.write_str()方法输出需要的自定义的格式,编写测试代码:

 pub fn main(){let user: User = User::new("zhangsan",18);println!("{}", user);
}

上面代码会输出:

[zhangsan]

也就是我们自定义的输出格式,但如果打印时使用{:?} 标记输出,则会调用Debug注解内的输出,输出为:

User { name: "zhangsan", age: 18 }

🔶 自定义转换

      有时我们的输入数据不一定是标准的可转换格式(如json)格式,比如下述格式:

"zhangsan,18"

我们又希望将上面的字符串可以快速转换为我们使用的结构体,那就需要用到自定义的格式转换,需要为结构体实现From<T>这个Trait(这里的T需要根据实际需要转换的值类型选择),代码如下:

impl From<String> for User {fn from(value: String) -> Self {//进行传入值根据,的分割let mut c = value.split(",");User {//分割后的第一位数据name: c.next().unwrap().to_string(),//分割后的第二位数据,并进行异常处理age: match c.next().unwrap().parse() {Ok(t) => t,Err(_e) => 0,},}}
}

这里需要对字符串数据进行分割,并分别取第一位和第二位数据赋值为name和age并进行返回,编写测试代码:

    let c = String::from("zhangsan,18");let user: User = c.into();println!("{:?}", user);

在实现From<T> 后就可以直接对这里的c调用into()方法,将其转换为User类型的结构体了.

🚨注意:这里必须指明要转换为的结构体类型,无法自动判断需要转换为的结构体类型.

🔶 疑问解答

🤔 :如果转换结构体时,比如年龄无法转换为i32类型应该如何操作?

match c.next().unwrap().parse() {Ok(t) => t,Err(_e) => 0,}

📢: 这里使用了match进行选择,当返回值为OK时,即转换成功时返回值,当报错时我们返回个默认值0或进行其它特殊处理,这样即使传入值为"ZHANGSAN,AWD" 转换为结构体时,也不会发生报错.

🤔 :如何将结构体转换为自定义的字符串?
 

let c = format!("{}",user);

可以通过format宏函数直接将结构体转换为字符串,同样会调用Display中的方法转换.

📖 总结

        在Rust中我们可以使用实现Display Trait实现自定义的格式打印,通过From<T> Trait进行自定义数据格式的转换操作.

上面就是所有配置信息了,如果内容对你有帮助,麻烦留一个赞👍和收藏⭐支持一下!


如果你对区块链内容感兴趣可以查看我的专栏:小试牛刀-区块链

感谢您的关注和收藏!!!!!!

http://www.dtcms.com/a/493607.html

相关文章:

  • 南宁律师网站建设做最好的美食分享网站
  • 网站建设经营范围怎么写小程序用什么语言开发
  • 磁县网站推广高端大气的企业网站模板
  • 网站设计要如何做支付功能网页微信手机版
  • 自己开发网站怎么盈利做代理的项目在哪个网站
  • 正规的佛山网站建设价格企业网站如何备案流程
  • 建筑工程 技术支持 东莞网站建设wordpress破解模板
  • 一个网站源代码概多大免费h5网站制作平台
  • 网站的设计分析建设银行网站维修图片
  • 阜蒙县建设学校网站是什么59网站一起做网店女鞋
  • 网站编辑电子商务网站运营专员济南企业建站怎么样
  • 盐城市城乡建设门户网站seo外推上排名
  • 网站建设swot市场分析软文通
  • 网站收录是怎么回事前端开发的公司有哪些
  • 记事本做网站的代码怎样学网站开发
  • 网站开发语言检测网站建设中备案
  • 云南网站制作多少钱dw软件怎么制作网页视频
  • 西安招商型网站建设阳泉软件定制网站建设
  • 宁阳县住房和城乡建设局网站找什么样的公司帮助做网站
  • 母婴用品商城网站建设网站建设技术论文
  • 做好网站建设的重要性网站开发和推广财务预算
  • 黄石建设信息网站网站建设活动策划方案
  • 中核西北建设集团网站现在建网站赚钱吗
  • 为什么php做不了大网站营销策略的重要性
  • 企业网站的建设与实现论文网上平面设计培训班
  • 做网站建设给人销售外贸网站建设软件有哪些
  • 欧美只做les 网站平台推广计划
  • 谁有做任务网站做查询系统网站
  • fomo3d网站开发wordpress oss官方
  • 景山网站建设qq网站安全认证怎么做