Rust {:?} vs {} 知多少

这篇具有很好参考价值的文章主要介绍了Rust {:?} vs {} 知多少。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Rust {:?} vs {} 知多少

{} 指示符

{} 需要实现std::fmt::Display

{:?} 指示符

{:?} 需要实现std::fmt::Debug

案例展示

struct Rectangle {
    width: u32,
    height: u32,
}

fn main() {
    let rect1 = Rectangle {
        width: 30,
        height: 50,
    };

    println!("rect1 is {}", rect1);
}

编译报错:

error[E0277]: `Rectangle` doesn't implement `std::fmt::Display`

提示我们没有实现Display trait


改成如下代码:

fn main() {
    let rect1 = Rectangle {
        width: 30,
        height: 50,
    };

    println!("rect1 is {:?}", rect1);
}

编译报错:

error[E0277]: `Rectangle` doesn't implement `Debug`

提示没有实现Debug trait


通过上面报错提示,我们在实现struct时候要根据自己的需要来实现Display或者Debug Trait。

自定义实现Display trait

use std::fmt;
struct Rectangle {
    width: u32,
    height: u32,
}
impl fmt::Display for Rectangle{
    // This trait requires `fmt` with this exact signature.
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        // Write strictly the first element into the supplied output
        // stream: `f`. Returns `fmt::Result` which indicates whether the
        // operation succeeded or failed. Note that `write!` uses syntax which
        // is very similar to `println!`.
        write!(f, "{} {}", self.width,self.height)
    }
}
fn main() {
    let rect1 = Rectangle {
        width: 30,
        height: 50,
    };

    println!("rect1 is {}", rect1);
}

输出如下:

rect1 is 30 50

Debug Trait

#[derive(Debug)]
struct Person {
    name: String,
    age: u32,
}

fn main() {
    let person = Person {
        name: String::from("Alice"),
        age: 30,
    };
    println!("Person: {:?}", person);
    println!("Person: {:#?}", person);
}

输出如下:

Person: Person { name: "Alice", age: 30 }
Person: Person {
    name: "Alice",
    age: 30,
}

一般我们可以通过#[derive(Debug)] 在编译阶段,编译器帮忙我们自动实现Debug trait。

总结

本文通过一些实例介绍了{:?} vs {} 的区别,以及实现Display和Debug Trait文章来源地址https://www.toymoban.com/news/detail-488339.html

到了这里,关于Rust {:?} vs {} 知多少的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Rust-知多少?

    Rust 学习系列,记录一些rust使用小技巧 如果你创建了一个变量却不在任何地方使用它,Rust 通常会给你一个警告。这时你希望告诉 Rust 不要警告未使用的变量,为此可以用下划线作为变量名的开头: 在线运行一下; 使用了下划线作为变量名开头的不会警告; let 表达式不仅仅

    2024年02月20日
    浏览(27)
  • 浪潮服务器硬盘指示灯显示黄色的服务器数据恢复案例

    服务器数据恢复环境: 宁夏某市某单位的一台浪潮服务器,该服务器中有一组由6块SAS硬盘组建的RAID5阵列。 服务器上存放的是Oracle数据库文件,操作系统层面划分了1个卷。   服务器故障初检: 服务器在运行过程中有两块磁盘的指示灯显示黄色,RAID5阵列崩溃,服务器不可用

    2024年02月14日
    浏览(50)
  • 服务器数据恢复—存储硬盘坏道,指示灯亮黄色的数据恢复案例

    服务器数据恢复环境故障: 一台某品牌EqualLogic PS系列某型号存储,存储中有一组由16块SAS硬盘组建的RAID5磁盘阵列,RAID5上划分VMFS文件系统存放虚拟机文件。存储系统上层一共分了4个卷。 raid5阵列中磁盘出现故障,有2块硬盘的指示灯显示黄色,存储不可用,存储设备已经过

    2024年04月26日
    浏览(43)
  • 做一个网站需要多少个技术人员?

    作为互联网从业者,这么多年来经常会碰到一个灵魂拷问,那就是“为什么一个网站需要那么多技术人员?”,尤其是提问者如果再追问一下“听说几个相关专业的学生一个课程的作业就是开发一个网站或者app,那为什么现在主流的网站或者app背后的公司,动辄就有上万人的

    2024年02月01日
    浏览(85)
  • 开发一个小程序商城需要多少钱?

    开发一个小程序商城需要多少钱?小程序商城的制作流程是什么?今天 CRMEB 就和大家来聊一聊开发小程序商城的方法以及费用,感兴趣的朋友赶紧来看一看! 方法一:源码开发(4 万左右) 开发小程序商城,首先我们要组织聘请完整专业的开发团队。其中要包含项目经理、

    2024年02月09日
    浏览(46)
  • 蜘蛛池搭建需要多少域名?全面解析!

    蜘蛛池是指为搜索引擎爬虫提供优质、可靠的页面,从而提高网站的收录和排名。在蜘蛛池搭建过程中,域名数量是一个非常重要的问题。那么,蜘蛛池搭建需要多少域名呢?本文将对这个问题进行全面解析。   首先,我们需要了解什么是蜘蛛池。蜘蛛池是一种专门用来托管

    2024年02月04日
    浏览(36)
  • 微信小程序开发需要多少钱?

    近几年来, 微信小程序开发 行业发展迅猛,可以说是未来的一个趋势,它不仅能在用户体验上更好,而且也能有效地提升商家的营业额。目前来说,小程序开发主要有模板小程序、定制小程序两种,模板小程序的价格比较低,定制小程序的价格则高一些。那么,小程序开发

    2024年02月07日
    浏览(39)
  • IDEA 远程 Debug 调试,你可以不需要,但是要会

    远程debug真的很有用,我个人的真实经历就是有一次,我新开发的功能,在生产上没生效,我询问了运维多次,运维也多次确认回复说是最新的包,又是查日志,对数据,仍然没发现问题,最后我就采用远程debug发现我新开发的代码不存在。 所以不需要不要紧,但是要会,作

    2024年02月08日
    浏览(57)
  • 开发人工智能APP需要多少成本?

    人工智能是确保任何企业成功的强大资产。从医疗保健应用到客户支持,人工智能正在立即成为许多组织不可或缺的一部分。然而,在应用程序中实现人工智能可能会很昂贵。然而,构建生成式人工智能应用程序的成本取决于多种因素。 2023 年,人工智能行业创造了 27 亿美元

    2024年02月19日
    浏览(43)
  • 开发卡牌gamefi游戏需要多少钱?

        卡牌游戏作为一种受欢迎的游戏形式,吸引了众多开发者的关注。然而,开发一款成功的卡牌游戏需要全面考虑多个方面的因素,其中之一就是资金投入。本文将从专业性和投入回报的角度,探讨开发一款卡牌游戏所需的资金投入。     一、专业性的重要性:     1.游戏

    2024年02月10日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包