Rust 语言println! 宏的格式占位符详解

 更新时间:2024年03月11日 10:52:01   作者:许野平  
这篇文章主要介绍了Rust语言的println!宏的格式占位符,这只是格式说明符的一部分清单,Rust 的格式化系统非常灵活和强大,支持更多的选项和组合,需要的朋友可以参考下

一、占位符

println! 宏的占位符主要基于 Rust 的格式化语法,它支持多种占位符格式来插入和格式化不同的值。除了 {}{:?} 之外,还有其他几种形式:

  • 基本占位符 {}:用于插入任何实现了 Display trait 的类型的值。
  • 调试占位符 {:?}:用于插入任何实现了 Debug trait 的类型的值,通常用于调试目的,因为它会提供更详细的输出。
  • 格式说明符 {:fmt}:其中 fmt 是格式字符串,允许你更详细地控制值的输出。例如,你可以控制整数的基数({:x} 表示十六进制),浮点数的精度({:.2f} 表示两位小数),字符串的宽度和对齐方式等。
let num = 255;
println!("Hex: {:x}", num); // 输出: Hex: ff

4,命名参数 {name}:在复杂的格式化字符串中,你可以给占位符命名,并在后面通过 format! 宏的参数列表提供值。

let name = "Alice";
let age = 30;
println!("Name: {name}, Age: {age}", name=name, age=age);
// 输出: Name: Alice, Age: 30

5.位置参数 {0}{1} 等:你也可以通过位置来引用 format! 宏参数列表中的值。位置从 0 开始。

let name = "Alice";
let age = 30;
println!("Name: {0}, Age: {1}", name, age);
// 输出: Name: Alice, Age: 30

6.宽度、精度和填充:你可以在格式说明符中指定字段的宽度、精度和填充字符。

let num = 123;
println!("Number: {:>10}", num); // 输出: Number:      123 (右对齐,总宽度为10)
println!("Number: {:<10}", num); // 输出: Number: 123      (左对齐,总宽度为10)
println!("Number: {:^10}", num); // 输出: Number:   123   (居中对齐,总宽度为10)
println!("Number: {:0>10}", num); // 输出: Number: 0000000123 (右对齐,用0填充至总宽度10)

7.二进制、八进制、十进制和十六进制:你可以使用不同的格式说明符来以不同的基数显示整数。

let num = 255;
println!("Dec: {:d}", num); // 输出: Dec: 255 (十进制)
println!("Hex: {:x}", num); // 输出: Hex: ff  (十六进制)
println!("Bin: {:b}", num); // 输出: Bin: 11111111 (二进制)
println!("Oct: {:o}", num); // 输出: Oct: 3ff  (八进制)

这些格式说明符可以组合使用,以提供几乎无限的格式化选项。如果你需要更复杂的格式化,还可以查阅 Rust 的官方文档来了解更多细节和可用的格式化选项。

二、关于 fmt 占位符

在 Rust 的格式化字符串中,{:fmt} 是一个占位符,其中 fmt 表示具体的格式说明符。这些格式说明符用于控制如何显示不同类型的数据。以下是一些常用的格式说明符的详细清单:

整数类型

  • {:d} 或 {}:十进制表示。
  • {:x} 或 {:X}:十六进制表示,小写 x 为小写字母,大写 X 为大写字母。
  • {:o}:八进制表示。
  • {:b}:二进制表示。
  • {:#b}、{:#o}、{:#x}、{:#X}:带有前缀的二进制、八进制、十六进制表示(例如 0b1010、0o123)。
  • {:0width}:用零填充到指定的宽度。

浮点数类型

  • {:f}:默认的小数表示。
  • {:.precision} 或 {:f.precision}:指定小数点后的精度。
  • {:e}:科学计数法表示。
  • {:E}:科学计数法表示,使用大写 E。
  • {:g} 或 {:G}:根据数值大小自动选择 f 或 e/E 表示法。
  • {:a} 或 {:A}:十六进制浮点数表示。

字符串和字符类型

  • {:s}:字符串表示。
  • {:c}:字符表示。
  • {:width}:指定最小字段宽度。
  • {:>width}、{:<width}、{:^width}:指定宽度和对齐方式(右对齐、左对齐、居中对齐)。
  • {:.width}:截断到指定宽度。
  • {:-}:左对齐,且不使用空格填充。
  • {:+}:对于数值类型,总是在正数前面显示加号。
  • {: }(包含一个空格):在正数前面添加空格。

其他

  • {:?}:调试格式,通常用于显示枚举和复合类型的内部表示。
  • {:p}:指针的地址表示。
  • {:#}:对于某些类型(如浮点数),使用替代格式。
  • {:width$}:位置参数,用于指定宽度等属性的值。

组合使用

格式说明符可以组合使用,例如 {:010.2f} 会将浮点数格式化为宽度至少为10(不足部分用0填充),且小数点后有两位的字符串。

这只是格式说明符的一部分清单,Rust 的格式化系统非常灵活和强大,支持更多的选项和组合。要获取完整的格式说明符清单和更详细的信息,建议查阅 Rust 的官方文档或相关资源。

到此这篇关于Rust 语言的 println! 宏的格式占位符的文章就介绍到这了,更多相关Rust println! 宏的格式占位符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Rust中不可变变量与const的区别详解

    Rust中不可变变量与const的区别详解

    Rust作者认为变量默认应该是immutable,即声明后不能被改变的变量,这一点是让跨语言学习者觉得很别扭,不过这一点小的改变带来了诸多好处,本节我们来学习Rust中不可变变量与const的区别,需要的朋友可以参考下
    2024-02-02
  • 2022最新Rust变量与数据类型讲解

    2022最新Rust变量与数据类型讲解

    rust 是强类型语言所有变量、常量都必须有明确的数据类型,这篇文章主要介绍了Rust变量与数据类型,需要的朋友可以参考下
    2022-11-11
  • 一步到位,教你如何在Windows成功安装Rust

    一步到位,教你如何在Windows成功安装Rust

    一步到位:轻松学会在Windows上安装Rust!想快速掌握Rust编程语言?别再为复杂教程头疼!这份指南将手把手带你顺利完成Windows平台上的Rust安装全过程,从此编码之旅更加顺畅无阻,立即阅读,开始你的Rust编程旅程吧!
    2024-01-01
  • 详解Rust Substrate框架中的Runtime

    详解Rust Substrate框架中的Runtime

    ubstrate是一个区块链开发框架,它提供了一系列模块化和可扩展的组件,可以帮助开发人员快速构建自定义区块链。 Runtime是Substrate区块链的核心部分,文中有详细的代码示例,需要的朋友可以参考下
    2023-05-05
  • Rust语言中级教程之指针

    Rust语言中级教程之指针

    Rust中共有三种类型的指针,分别为引用,解引用,智能指针,这篇文章主要介绍了Rust语言中级教程之指针,需要的朋友可以参考下
    2023-05-05
  • R语言ggplot2绘图安装与调试

    R语言ggplot2绘图安装与调试

    ggplot2是R语言中最常用的绘图包之一,它提供了一种基于图层的绘图语法,使得用户可以轻松地创建高质量的数据可视化图表。在使用ggplot2之前,需要先安装该包并进行调试。安装ggplot2可以通过CRAN或GitHub进行,调试则需要注意数据格式、语法错误等问题。
    2023-06-06
  • Rust处理命令行参数

    Rust处理命令行参数

    在Rust中,命令行参数是程序从命令行接收的输入,它们为程序提供了运行时配置和数据的灵活性,本文就来介绍一下Rust处理命令行参数,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 一文掌握Rust编程中的生命周期

    一文掌握Rust编程中的生命周期

    在Rust语言中, 每一个引用都有其生命周期, 通俗讲就是每个引用在程序执行的过程中都有其自身的作用域, 一旦离开其作用域, 其生命周期也宣告结束, 值不再有效,这篇文章主要介绍了Rust编程中的生命周期,需要的朋友可以参考下
    2023-11-11
  • Rust读取配置文件的实现

    Rust读取配置文件的实现

    本文主要介绍了Rust读取配置文件的实现,主要读取Cargo.toml文件,读取.env文件和读取自定义toml文件这三种,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Rust中HashMap类型的使用详解

    Rust中HashMap类型的使用详解

    Rust中一种常见的集合类型是哈希映射,本文主要介绍了Rust中HashMap类型的使用详解,包含创建访问修改遍历等,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03

最新评论