通过例子学 rust 个人精简版 1-1

1-1

Hello World
fn main() {println!("Hello World!");// 动手试一试println!("I'm a Rustacean!");
}
Hello World!
I'm a Rustacean!
要点1 :println 自带换行符 
注释
fn main() {let x = 5 + /* 90 + */ 5;println!("Is `x` 10 or 100? x = {}", x);
}
要点2 : 行注释 // 与 块注释 /**/ 
要点1 : 块注释可以嵌套,并且会被检查
格式化输出
fn main() {println!("{} days", 31);println!("{0}, this is {1}. {1}, this is {0}", "Alice", "Bob");println!("{subject} {verb} {object}",object="the lazy dog",subject="the quick brown fox",verb="jumps over");println!("{} of {:b} people know binary, the other half don't", 1, 2);// 下面语句输出 "     1",5 个空格后面连着 1。println!("{number:>width$}", number=1, width=6);// 你可以在数字左边补 0。下面语句输出 "000001"。println!("{number:>0width$}", number=1, width=6);// println! 会检查使用到的参数数量是否正确。println!("My name is {0}, {1} {0}", "Bond", "James");// 改正 ^ 补上漏掉的参数:"James"// 动手试一试let pi = 3.141592println!("Pi is roughly {:.3}", pi)
}
要点1 : 31 默认为i32 31_f64 或 31f64 来改变类型
要点2 : println!("{}", xxx){} 可以被变量替换 
要点3 : println!("{0}{1}", xxx, yyy) 位置参数
要点4 :  命名参数  println!("{subject} {verb}", object="the lazy dog", verb="jumps over");
要点5 : println!("{:b}", 2) : 冒号可以指定特殊格式 b 为二进制
要点6 : println!("{number:>width$}", number=1, width=6); {value:format$}  > 右对齐  $用来接收 
要点7 : println!("{number:>0width$}", number=1, width=6); 可以指定填充符
个人拓展 我觉得原文提供的不如第三行我写的 
println!("{number:>width$}", number=1, width=6)
println!("{:>width$}", 1, width=6);
println!("{:>6}", 1);
调试(Debug)
#[derive(Debug)]
struct Structure(i32);#[derive(Debug)]
struct Deep(Structure);fn main() {// `Structure` 也可以打印!println!("Now {:?} will print!", Structure(3));// 使用 `derive` 的一个问题是不能控制输出的形式。// 假如我只想展示一个 `7` 怎么办?println!("Now {:?} will print!", Deep(Structure(7)));
}
要点1 : #[derive(Debug)] `derive` 属性会自动创建所需的实现,使这个 `struct` 能使用 `fmt::Debug` 打印。
要点2 : 使用 `{:?}` 打印和使用 `{}` 类似 对于能直接输出的类型来说
要点3 : 元组结构体 Structure(3) 的输出就会直接输出成 Structure(3)
要点4 : 只想输出一个7 需要手动实现 debug trait 然后使用 {:?} 或者实现 display trait 直接用 {}
#[derive(Debug)]
struct Person<'a> {name: &'a str,age: u8
}
fn main() {let name = "Peter";let age = 27;let peter = Person { name, age };// 美化打印println!("{:#?}", peter);
}
Person {name: "Peter",age: 27,
}
要点1 : {:#?} 可以美化打印
个人拓展 : # 只能用于 ?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/69884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ML.NET库学习007:从SQL数据库中流式读取数据并进行预测分析

文章目录 ML.NET库学习007:从SQL数据库中流式读取数据并进行预测分析项目主要目的和原理项目概述实现的主要功能主要流程步骤使用的主要函数方法关键技术主要功能和步骤功能详细解读实现步骤分步骤代码结构及语法解读使用机器学习进行特征工程:从类别到数值的转换与文本特征提…

闲鱼IP属地是通过电话号码吗?

在闲鱼这样的二手交易平台上&#xff0c;用户的IP属地信息对于维护交易安全、增强用户间的信任至关重要。然而&#xff0c;关于闲鱼IP属地是如何确定的&#xff0c;不少用户存在疑惑&#xff0c;尤其是它与电话号码之间是否存在关联。本文将深入探讨这一问题&#xff0c;揭示闲…

电商小程序(源码+文档+部署+讲解)

引言 随着移动互联网的快速发展&#xff0c;电商小程序成为连接消费者与商家的重要桥梁。电商小程序通过数字化手段&#xff0c;为消费者提供了一个便捷、高效的购物平台&#xff0c;从而提升购物体验和满意度。 系统概述 电商小程序采用前后端分离的架构设计&#xff0c;服…

【20250215】二叉树:94.二叉树的中序遍历

#方法一&#xff1a;递归法 # class Solution: # def inorderTraversal(self,root): # res[] # def dfs(node): # if node is None: # return # #下面代码是不对的&#xff0c;没有体现递归 # #res.a…

Windows环境安装Kafka(集群版)

大家好&#xff0c;最近在准备Java面试&#xff0c;复习到Kafka的相关知识&#xff0c;一时兴起&#xff0c;就想在自己的Windows笔记本上安装一个Kafka集群。下面就记录一下安装步骤。 工具分享 Offset Explorer&#xff1a;Kafka可视化工具 下载地址&#xff1a;https://ww…

完全数和质数算法详解

完全数是指一个正整数&#xff0c;它等于其所有真约数&#xff08;即除了自身以外的所有正因数&#xff09;之和。例如&#xff0c;6 是一个完全数&#xff0c;因为它的真约数是 1、2 和 3&#xff0c;且 1 2 3 6。 1 计算约数和 1.1 遍历 遍历其所有可能的约数并计算它们…

buu-jarvisoj_level2_x64-好久不见37

覆盖缓冲区和 RBP&#xff1a; 使用 128 8 字节覆盖 buf 和 rbp。 构造 ROP 链&#xff1a; pop rdi; ret 地址&#xff1a; 将 pop rdi; ret 指令的地址写入返回地址位置。 /bin/sh 地址&#xff1a; 将 /bin/sh 字符串的地址压入栈顶&#xff0c;作为 system 函数的参数。…

大模型训练为什么依赖GPU

近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;特别是深度学习领域的进步&#xff0c;大模型的训练逐渐成为研究和工业界的热点。作为大模型训练中的核心硬件&#xff0c;GPU&#xff08;图形处理单元&#xff09;扮演了至关重要的角色。那么&#xff0c;为什么大模…

Python的那些事第二十一篇:Python Web开发的“秘密武器”Flask

基于 Flask 框架的 Python Web 开发研究 摘要 在 Web 开发的江湖里,Python 是一位武林高手,而 Flask 则是它手中那把小巧却锋利的匕首。本文以 Flask 框架为核心,深入探讨了它在 Python Web 开发中的应用。通过幽默风趣的笔触,结合实例和表格,分析了 Flask 的特性、优势以…

Ubuntu+Laravel+MQ+Supervisor队列系统搭建流程

1、安装MQ环境 sudo apt install -y rabbitmq-server sudo systemctl enable rabbitmq-server --now 2、进入laravel项目&#xff0c;安装MQ队列驱动 composer require vladimir-yuldashev/laravel-queue-rabbitmq 3、配置 .env QUEUE_CONNECTIONrabbitmq RABBITMQ_HOST12…

5G与物联网的协同发展:打造智能城市的未来

引言 随着科技的不断进步&#xff0c;智能城市的概念已经不再是科幻小说中的幻想&#xff0c;它正在逐步走进我们的生活。而这背后的两大驱动力无疑是 5G和 物联网&#xff08;IoT&#xff09;。5G网络以其高速率、低延迟、大容量的优势&#xff0c;与物联网的强大连接能力相结…

python第七课

WSGI Middleware 中间件&#xff0c;可以理解称对应用程序的一组装饰器&#xff0c;对两边都起作用的元素。 重写environ&#xff0c;然后基于URL&#xff0c;将请求对象路由给不同的应用对象支持多个应用或者框架顺序地运行于同一个进程中通过转发请求和相应&#xff0c;支持负…

RAII(Resource Acquisition Is Initialization)机制

RAII&#xff08;Resource Acquisition Is Initialization&#xff09;机制 1. 什么是 RAII&#xff1f; &#x1f31f; RAII&#xff08;资源获取即初始化&#xff0c;Resource Acquisition Is Initialization&#xff09; 是 C 语言中的一种管理资源的编程技巧。 RAII 使资…

【kafka系列】日志存储设计 消息写入、读取

目录 日志存储设计 1. 日志存储的目录结构 2. 日志内容格式设计 3. 日志索引设计 4. 设计优势 消息写入流程 示例 流程图 消息读取流程 示例 关键设计细节 流程图 日志存储设计 Kafka的日志存储是其高吞吐、持久化能力的核心设计&#xff0c;其结构包含目录组织、…

vue3.x 自定义hook函数详细解读

1. 什么是自定义 Hook 函数&#xff1f; 自定义 Hook 函数是一个封装了逻辑的 JavaScript 函数&#xff0c;它可以使用 Vue 3 的 Composition API 提供的响应式数据和生命周期钩子。通过自定义 Hook&#xff0c;你可以将组件的逻辑拆分成更小、更可复用的单元。 特点&#xf…

是时候说再见了

说再见 2018 to 2025 2018&#xff1a;学习 2018年开始读研。师兄师姐们说可以写写CSDN博客&#xff0c;对找工作也有帮助。于是在12月4日&#xff0c;发布了自己的第一篇文章[翻译] 神经网络与深度学习 首页 - Index。当时还在学习各种基础知识&#xff0c;看到了这个英文文…

蓝桥杯篇---IAP15F2K61S2定时器

文章目录 前言简介定时器的工作模式1.模式02.模式13.模式24.模式3 定时器的寄存器1.TMOD2.TCON3.THO/TL04.TH1/TL1 定时器的使用步骤1.配置TMOD2.设置初值3.启动定时器4.使能中断5.编写中断服务函数 示例代码&#xff1a;定时器的基本使用代码说明示例代码&#xff1a;定时器1用…

2D 游戏艺术、动画和光照

原文&#xff1a;https://unity.com/resources/2d-game-art-animation-lighting-for-artists-ebook 笔记 用Tilemap瓷砖大小为1单元&#xff0c;人物大小在0.5~2单元 PPU &#xff1a;单位像素 pixels per unit 2160 4K分辨率/ 正交相机size*2 完整屏幕显示像素点 有骨骼动…

HTML的入门

一、HTML HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是一种用来告知浏览器如何组织页面的标记语言。 超文本&#xff1a;就是超越了文本&#xff1b;HTML不仅仅可以用来显示文本(字符串、数字之类)&#xff0c;还可以显示视频、音频等…

C语言:指针详解

C语言&#xff1a;指针详解 1&#xff1a;指针的基本概念1&#xff1a;什么是指针2&#xff1a;为什么要引入指针3&#xff1a;指针的作用4&#xff1a;指针的类型 2&#xff1a;指针的声明与初始化1&#xff1a; 指针的声明2&#xff1a; 指针的初始化 3&#xff1a;指针的操作…