首页 > 其他分享 >Rust 输出到命令行

Rust 输出到命令行

时间:2024-12-09 16:27:36浏览次数:10  
标签:输出 runoob rs 字符串 命令行 println Rust

在正式学习 Rust 语言以前,我们需要先学会怎样输出一段文字到命令行,这几乎是学习每一门语言之前必备的技能,因为输出到命令行几乎是语言学习阶段程序表达结果的唯一方式。

在之前的 Hello, World 程序中大概已经告诉了大家输出字符串的方式,但并不全面,大家可能很疑惑为什么 println!( "Hello World") 中的 println 后面还有一个 ! 符号,难道 Rust 函数之后都要加一个感叹号?显然并不是这样。println 不是一个函数,而是一个宏规则。这里不需要更深刻的挖掘宏规则是什么,后面的章节中会专门介绍,并不影响接下来的一段学习。

Rust 输出文字的方式主要有两种:println!() 和 print!()。这两个"函数"都是向命令行输出字符串的方法,区别仅在于前者会在输出的最后附加输出一个换行符。当用这两个"函数"输出信息的时候,第一个参数是格式字符串,后面是一串可变参数,对应着格式字符串中的"占位符",这一点与 C 语言中的 printf 函数很相似。但是,Rust 中格式字符串中的占位符不是 "% + 字母" 的形式,而是一对 {}

实例:runoob.rs 文件

fn main() {
    let a = 12;
    println!("a is {}", a);
}

使用 rustc 命令编译 runoob.rs 文件:

$ rustc runoob.rs   # 编译 runoob.rs 文件

编译后会生成 runoob 可执行文件:

$ ./runoob    # 执行 runoob

以上程序的输出结果是:

a is 12 

如果我想把 a 输出两遍,那岂不是要写成:

println!("a is {}, a again is {}", a, a); 

其实有更好的写法:

println!("a is {0}, a again is {0}", a); 

在 {} 之间可以放一个数字,它将把之后的可变参数当作一个数组来访问,下标从 0 开始。

如果要输出 { 或 } 怎么办呢?格式字符串中通过 {{ 和 }} 分别转义代表 { 和 }。但是其他常用转义字符与 C 语言里的转义字符一样,都是反斜杠开头的形式。

fn main() { 
    println!("{{}}"); 
}

以上程序的输出结果是:

{}

标签:输出,runoob,rs,字符串,命令行,println,Rust
From: https://blog.csdn.net/wuqyan/article/details/144351655

相关文章

  • Linux中-vvv详细输出命令
    在Shell脚本中,有时会看到某些命令后面加上`-vvv`或类似的选项。这个选项的作用通常与命令的**调试模式**或**详细输出**相关。不同的命令和工具对于选项的解释和处理方式不同,因此`-vvv`的具体含义取决于它所跟随的命令。###一般来说,`-v`和`-vvv`的含义如下:1.*......
  • 7-194 输出大写英文字母
    本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“NotFound”。输入格式:输入为一个以回车结束的字符串(少于80个字符)。输出格式:按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文......
  • C#实现一个HttpClient集成通义千问-流式输出内容提取
    返回对象处理返回对象分析根据流式返回的数据处理内容对象{"choices":[{"delta":{"content":"","role":"assistant"},"index":0,"logprobs":null,"finish_reas......
  • 【树莓派】 Warning from apt-key: Key is stored in legacy trusted.gpg keyring (/e
    执行sudoaptupdate出现这个错误:W:http://raspbian.raspberrypi.com/raspbian/dists/bookworm/InRelease:Keyisstoredinlegacytusted.gpgkeyring(/etc/apt/trusted.gpg),seetheDEPRECATIONsectioninapt-key(8)fordetrails.解决方法:$apt-keylist|......
  • 算法题 - ACM 模式中常用输入输出用法总结
    Tips:由于算法题中的ACM模式需要自己解析输入输出,因此需要熟悉Scanner、字符串格式化等基本用法 可以在此网站进行ACM模式训练:https://kamacoder.com/problemset.php?search=%E5%9F%BA%E7%A1%80一、Scanner用法1.1构造函数://用法一:读取System.in输入的内容Scann......
  • JDK 18 及以上使用标准输出流中文输出乱码问题
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。链接:https://stazxr.cn/2024/12/05/JDK-18-以上使用标准输出流中文输出乱码问题/来源:終わり群星问题描述起因是tomcat调用servlet输出的System.out.println(也就是所说的控制台输出流)中文乱码,但是其......
  • 【Rust自学】1.2. Rust的基本认识与“Hello World”
    本期资源1.2.0.题外话本人非常推荐使用JetBrains开发的RustRover(目前对非商业用途是免费的)作为编写Rust的IDE,在之后的文章中本人也会继续使用RustRover作为演示。本文章需要你有一定的编程经验(如果有C/C++的经验那就再好不过)1.2.1.编写Rust程序文件后缀名:.rs......
  • 【Rust自学】1.1. 安装Rust
    1.1.1.官网安装去Rust官网,右上角可以设置语言点击“GetStarted”,你会看到如下的界面:根据自己的系统版本来选择下载:32位下32-BIT,64位下64-BIT,目前大部分电脑都是64位,如果你不知道自己的电脑是64位还是32位,那么只要你的电脑不是老古董,下64位大概率没问题。如果想要为......
  • C语言的常用标准数据类型、转义字符、输出格式符、输入格式符、算术运算符、关系运算
    目录 C语言的常用标准数据类型C语言的常用转义字符C语言的输出格式符C语言的输入格式符C语言的算术运算符C语言的关系运算符C语言的逻辑运算符 C语言的常用标准数据类型C语言的常用转义字符‘\n’       换行符‘\t’       制表符‘\b’ ......
  • rust十三.1、匿名函数(闭包)
    在编译后,所谓的闭包是编译为单独的函数,所以原文的作者也把closure称为函数。因此,本文也称为函数。这个更好理解的一个概念。一、概念在某个程序体内定义的一段代码,该代码不具有fn的格式,但是实现函数的作用,这样的代码称为匿名函数(closure)。匿名函数这个东西,现在各个语言大行其......