通过例子学 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 : {:#?} 可以美化打印
个人拓展 : # 只能用于 ?
相关文章:
通过例子学 rust 个人精简版 1-1
1-1 Hello World fn main() {println!("Hello World!");// 动手试一试println!("Im a Rustacean!"); }Hello World! Im a Rustacean!要点1 :println 自带换行符 注释 fn main() {let x 5 /* 90 */ 5;println!("Is x 10 or 100? x …...
HTTP的前世今生:如何塑造现代互联网的交互方式?
一、关于HTTP 1.1 简介 “没有HTTP协议,就没有今天的互联网。” 从简单的文本传输到支撑全球数十亿设备的实时交互,HTTP协议始终是Web世界的核心纽带。本文将深入剖析其设计思想、演进历程及底层工作原理。 HTTP(HyperText Transfer Protoco…...
Flutter_学习记录_动画的简单了解
用AnimationController简单实现如下的效果图: 1. 只用AnimationController实现简单动画 1.1 完整代码案例 import package:flutter/material.dart;class AnimationDemo extends StatefulWidget {const AnimationDemo({super.key});overrideState<AnimationDe…...
【java】for (int num : numbers) { System.out.print(num + “ “); } for里的是什么意思
for (int num : numbers) 是 Java 中的一种 增强型 for 循环(也称为 for-each 循环)。它的作用是遍历数组或集合中的每一个元素,并对每个元素执行循环体中的操作。 1. 增强型 for 循环的语法 java Copy for (元素类型 变量名 : 数组或集合…...
内容中台驱动企业CMS架构优化与高效策略
内容概要 在数字化转型浪潮中,企业内容管理系统(CMS)正面临从单一内容存储向智能化、协同化方向演进的迫切需求。通过引入内容中台架构,企业能够有效整合元数据管理、版本控制与智能协作能力,从而优化传统CMS的底层逻…...
我用 Cursor 开发了一款个人小记系统
https://note.iiter.cn 项目背景 在日常工作和学习中,我们经常需要快速记录一些想法、收藏一些有用的链接或者保存一些重要的文本、图片内容。虽然市面上已经有很多笔记软件,但我想要一个更轻量、更简单的工具,专注于快速记录和智能检索。于是我开发了这款个人小记系统。 系统…...
百问网(100ask)提供的烧写工具的原理和详解;将自己编译生成的u-boot镜像文件烧写到eMMC中
百问网(100ask)提供的烧写工具的原理 具体的实现原理见链接 http://wiki.100ask.org/100ask_imx6ull_tool 为了防止上面这个链接失效,我还对上面这个链接指向的页面保存成了mhtml文件,这个mhtml文件的百度网盘下载链接: https://pan.baidu.c…...
doris:异步物化视图概述
物化视图作为一种高效的解决方案,兼具了视图的灵活性和物理表的高性能优势。 它能够预先计算并存储查询的结果集,从而在查询请求到达时,直接从已存储的物化视图中快速获取结果,避免了重新执行复杂的查询语句所带来的开销。 使用场…...
图像缩放的双线性插值实现方式
1、双线性插值概念 双线性插值是一种用于在二维网格上进行插值的方法,适用于图像处理、计算机图形学等领域。它通过利用四个邻近点的已知值,估算出任意点的值。双线性插值在两个方向(通常是水平和垂直)上分别进行线性插值&#x…...
深入剖析 Vue 的响应式原理:构建高效 Web 应用的基石
深入剖析 Vue 的响应式原理:构建高效 Web 应用的基石 在前端开发的广阔天地里,Vue.js 凭借其简洁易用的特性和强大的功能,成为众多开发者的心头好。其中,响应式原理作为 Vue 的核心亮点之一,让数据与视图之间实现了高…...
40.日常算法
1.无重复字符的最长子串 题目来源 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 class Solution { public:int lengthOfL…...
CAS单点登录(第7版)11.SSO SLO
如有疑问,请看视频:CAS单点登录(第7版) SSO & SLO 安装IDEA Download IntelliJ IDEA – The IDE for Professional Development in Java and Kotlin 安装Maven Download Apache Maven – Maven MAVEN_HOMED:\apache-maven…...
Bob the Canadian
1:around the house Hi! Bob the Canadian here! Let’s learn English around the house. Come on in! Hi, Bob the Canadian here. Welcome to this video. If this is your first time here, don’t forget to click the subscribe button below, and give…...
CAS单点登录(第7版)16.模仿
如有疑问,请看视频:CAS单点登录(第7版) 模仿 概述 代理身份验证 代理身份验证(模拟),有时称为 Web 的 sudo,是代表其他用户进行身份验证的能力。 在这种情况下,两个参…...
预留:大数据Hadoop之——部署hadoop+hive+Mysql环境(Linux)
传送门目录 前期准备 一、JDK的安装 1、安装jdk 2、配置Java环境变量 3、加载环境变量 4、进行校验 二、hadoop的集群搭建 1、hadoop的下载安装 2、配置文件设置 2.1. 配置 hadoop-env.sh 2.2. 配置 core-site.xml 2.3. 配置hdfs-site.xml 2.4. 配置 yarn-site.xm…...
RabbitMQ介绍以及基本使用
文章目录 一、什么是消息队列? 二、消息队列的作用(优点) 1、解耦 2、流量削峰 3、异步 4、顺序性 三、RabbitMQ基本结构 四、RabbitMQ队列模式 1、简单队列模式 2、工作队列模式 3、发布/订阅模式 4、路由模式 5、主题模式 6、…...
C++演示中介模式
避免两个模块之间的耦合,使用中介模式解决。下面是C代码 #include <iostream> #include <vector>using namespace std;class client;//中介 class mediator { public:void addclient(client* client) {clientVec.push_back(client);}void send(const s…...
Vue的简单入门 一
声明:本版块根据B站学习,创建的是vue3项目,用的是vue2语法风格,仅供初学者学习。 目录 一、Vue项目的创建 1.已安装15.0或更高版本的Node.js 2.创建项目 二、 简单认识目录结构 三、模块语法中的指令 1.v-html 1.文本插值…...
【免费送书活动】《MySQL 9从入门到性能优化(视频教学版)》
本博主免费赠送读者3本书,书名为《MySQL 9从入门到性能优化(视频教学版)》。 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 这本书已经公开…...
export default与export区别
1.定义: export default:用于导出模块中的默认成员。一个模块中只能有一个export default,通常用于导出模块的主要功能或对象。导入时可以使用任意名称,因为它没有具体的名称 export:用于导出模块中的多个成…...
StreamFX架构深度解析:现代OBS插件框架设计与技术实现
StreamFX架构深度解析:现代OBS插件框架设计与技术实现 【免费下载链接】obs-StreamFX StreamFX is a plugin for OBS Studio which adds many new effects, filters, sources, transitions and encoders! Be it 3D Transform, Blur, complex Masking, or even custo…...
抖音批量下载助手:一键获取全系列作品的终极解决方案
抖音批量下载助手:一键获取全系列作品的终极解决方案 【免费下载链接】douyinhelper 抖音批量下载助手 项目地址: https://gitcode.com/gh_mirrors/do/douyinhelper 还在为手动保存抖音视频而烦恼吗?今天我要向你介绍一款神奇的抖音批量下载助手&…...
3分钟掌握RePKG:Wallpaper Engine资源提取与转换终极指南
3分钟掌握RePKG:Wallpaper Engine资源提取与转换终极指南 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾对Wallpaper Engine中精美的动态壁纸感到好奇…...
AI项目平均延期率下降63%的秘密(SITS2026 v4.1实测数据):这5个嵌入式度量点你漏了几个?
更多请点击: https://intelliparadigm.com 第一章:SITS2026 v4.1框架演进与AI项目延期根因重构 SITS2026 v4.1 是面向智能任务调度的下一代企业级AI基础设施框架,其核心演进聚焦于**动态依赖图解耦**、**异构算力感知编排**与**可验证推理链…...
告别虚拟机!用安卓手机+Termux搭建Routersploit渗透测试环境(保姆级避坑指南)
移动安全实战:安卓终端构建轻量化渗透测试环境全攻略 在咖啡馆的角落,一位安全研究员正用手机快速验证某个公共Wi-Fi路由器的漏洞——这不是科幻场景,而是Termux带来的技术革新。传统渗透测试需要携带笨重笔记本或依赖云服务的时代正在被改写…...
别再只盯着算力了!聊聊显卡供电:从GS7210A芯片看入门显卡的电源设计门道
显卡供电设计的微观密码:从GS7210A芯片看入门级显卡的电源哲学 当大多数玩家沉迷于算力对比和跑分竞赛时,显卡PCB上那些不起眼的供电元件正在默默书写着另一种性能语言。以AMD Radeon 520这张入门级显卡为例,它的单相Buck电源方案就像一本打开…...
终极指南:如何快速配置和优化yuzu Switch模拟器
终极指南:如何快速配置和优化yuzu Switch模拟器 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu yuzu是一款功能强大的任天堂Switch模拟器,能够在PC上流畅运行Switch游戏。本指南将帮助你从零…...
别再手动汉化了!TinyMCE 6.x 中文语言包(zh_CN.js)一键配置全攻略
TinyMCE 6.x 中文语言包极速配置指南:告别手动汉化的低效时代 每次打开TinyMCE编辑器,面对满屏的英文界面,你是否感到一丝不便?作为国内开发者,我们常常需要为项目中的富文本编辑器添加中文支持。传统的手动汉化方式不…...
别再手动调Excel格式了!用EasyExcel 3.x模板填充,5分钟搞定复杂报表导出(附完整代码)
告别Excel格式噩梦:EasyExcel 3.x模板填充实战指南 每次看到产品经理发来的Excel报表需求,我的手指就会不自觉地颤抖——那些多级表头、动态统计行、跨列合并单元格,还有永远对不齐的日期格式。直到我发现EasyExcel的模板填充功能,…...
京东自动化抢购工具终极指南:3步轻松实现智能抢单
京东自动化抢购工具终极指南:3步轻松实现智能抢单 【免费下载链接】jd-assistant 京东抢购助手:包含登录,查询商品库存/价格,添加/清空购物车,抢购商品(下单),查询订单等功能 项目地址: https://gitcode.…...
