当前位置:网站首页>【一起学Rust】Rust学习前准备——注释和格式化输出
【一起学Rust】Rust学习前准备——注释和格式化输出
2022-08-03 11:06:00 【m0_67391521】
提示:准备热身。
文章目录
前言
在正式开始学习Rust之前,我们需要对一些Rust的基础操作做点了解,因为这些东西不知道,在看后面的文章时,面对突然出现的基础语法就很蒙,我在学习Rust时看的是Rust圣经,里面虽然在讲到的时候说了格式化输出了,但是突然看到也很懵,总觉得学习不成体系,都是在只言片语中学习,因此在我们正式进入Rust的学习之前,我们先把一些基础的输出和注释说明白。
一、注释
注释对任何程序都不可缺少,同样 Rust 支持几种不同的注释方式。
1. 普通注释
普通注释就是其内容将被编译器忽略掉的注释,一般有两种用法,行注释和块注释
// 单行注释,注释内容直到行尾。
/* 块注释,注释内容一直到结束分隔符。 */
2. 文档注释
文档注释就是其内容被解析成HTML文档的注释,同样也是有两种用法,
/// 为接下来的项生成帮助文档。
//! 为注释所属于的项(译注:如 crate、模块或函数)生成帮助文档。
文档注释我们就先介绍到这里,在后面对Rust了解比较深入以后我们会详细的介绍文档注释,我们在学习过程中大都用普通注释。
二、格式化输出
打印操作由 std::fmt 里面所定义的一系列宏来处理,包括:
- format!:将格式化文本写到字符串。
- print!:与 format! 类似,但将文本输出到控制台(io::stdout)。
- println!: 与 print! 类似,但输出结果追加一个换行符。
- eprint!:与 print! 类似,但将文本输出到标准错误(io::stderr)。
- eprintln!:与 eprint! 类似,但输出结果追加一个换行符。
这些宏都以相同的做法解析文本。有个额外优点是格式化的正确性会在编译时检查。
输出字符串
就和其他编程语言一样,Rust输出字符串只需要在参数里面加上要输出的字符串即可。
println!("7 days");

输出带有占位符的字符串
通常情况下,{} 会被任意变量内容所替换。变量内容会转化成字符串。
println!("{} days", 31);

可以使用多个占位符,
占位符还可以选择变量位置数,
println!("{0}, 这是 {1}. {1}, 这是 {0}", "张三", "李四");

还可以给参数命名,下面实例中object代表宾语,subject代表主语,verb代表谓语
println!("{subject} {verb} {object}",object="你",subject="我",verb="爱");

输出带有指定格式占位符的字符串
可以在 : 后面指定特殊的格式。
println!("{} 的二进制表示是: {0:b}", 10);

指定宽度对齐
Rust的对齐输出是需要指定宽度才可以的,代码如下,
// 左对齐
println!("{number:<width$}", number=1, width=6);
// 右对齐
println!("{number:>width$}", number=1, width=6);

数字输出缺位补0
这里与上面的一对比就可以看出来了
println!("{number:>0width$}", number=1, width=6);
下面的是补0,上面是对齐
总结
以上就是本次的内容了,本文主要是讲了注释和格式化输出的一些基础内容。
注释
- 普通注释
- 文档注释
格式化输出
- 输出字符串
- 输出带有占位符的字符串
- 输出指定样式占位符的字符串
- 指定宽度对齐
- 缺位补0
注释中我们留下文档注释在后面讲,因为如果不是对基础语法很熟悉的话,写文档注释会很蒙。
格式化输出我们也是只介绍了基本的时候,后面会有不少高级用法需要了解Rust的基础概念才可以学习,我们会在文章中穿插的介绍,并且会在后面专门出一章来更加详细的介绍格式化输出的功能。
后面更加精彩的内容请期待吧。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢

XDR平台架构与关键技术解析

混动产品谁更吃香,看技术还是看市场?

CADEditorX ActiveX 14.1.X

Depth study of 100 cases - convolution neural network (CNN) to realize the clothing image classification

Simple implementation of a high-performance clone of Redis using .NET (1)

程序员架构修炼之道:如何设计出可持续演进的系统架构?

程序员架构修炼之道:软件架构基本概念和思维
![[Star Project] Little Hat Plane Battle (9)](/img/e3/c7d2728080bcdccc181a7e5c50ee6f.png)
[Star Project] Little Hat Plane Battle (9)

Win10/11 删除文件资源管理器左侧栏目文件夹

3分钟实现内网穿透(基于ngrok实现)
随机推荐
Why is the new earth blurred, in-depth analysis of white balls, viewing pictures, and downloading problems
2022年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多
Generate interface documentation online
LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之二
试题G:单词分析 ← 第十一届蓝桥杯大赛第二场省赛赛题
[Explanation of JDBC and inner classes]
C#/VB.NET 从PDF中提取表格
Machines need tokens more than people
MATLAB programming and application 2.7 Structural data and unit data
本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现
二叉搜索树(搜索二叉树)模拟实现(有递归版本)
苏州大学:从PostgreSQL到TDengine
成为优秀架构师必备技能:怎样才能画出让所有人赞不绝口的系统架构图?秘诀是什么?快来打开这篇文章看看吧!...
代码分析Objective-C中的深拷贝与浅拷贝
实至名归!九章云极DataCanvas公司荣获智能制造领域多项殊荣
Who is more popular for hybrid products, depending on technology or market?
谷歌实用插件分享
图新地球为什么很模糊,白球、看图、下载问题深度剖析
Dry goods!A highly structured and sparse linear transformation called Deformable Butterfly (DeBut)
complete knapsack problem
