当前位置: 首页 > news >正文

通过例子学 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.lryc.cn/news/537602.html

相关文章:

  • HTTP的前世今生:如何塑造现代互联网的交互方式?
  • Flutter_学习记录_动画的简单了解
  • 【java】for (int num : numbers) { System.out.print(num + “ “); } for里的是什么意思
  • 内容中台驱动企业CMS架构优化与高效策略
  • 我用 Cursor 开发了一款个人小记系统
  • 百问网(100ask)提供的烧写工具的原理和详解;将自己编译生成的u-boot镜像文件烧写到eMMC中
  • doris:异步物化视图概述
  • 图像缩放的双线性插值实现方式
  • 深入剖析 Vue 的响应式原理:构建高效 Web 应用的基石
  • 40.日常算法
  • CAS单点登录(第7版)11.SSO SLO
  • Bob the Canadian
  • CAS单点登录(第7版)16.模仿
  • 预留:大数据Hadoop之——部署hadoop+hive+Mysql环境(Linux)
  • RabbitMQ介绍以及基本使用
  • C++演示中介模式
  • Vue的简单入门 一
  • 【免费送书活动】《MySQL 9从入门到性能优化(视频教学版)》
  • export default与export区别
  • 最佳的出牌方法
  • Kotlin 2.1.0 入门教程(二十一)数据类
  • 30天开发操作系统 第 20 天 -- API
  • WEB安全--SQL注入--floor报错注入
  • 【java面向对象的三大特性】封装、继承和多态
  • Hermite 插值
  • 【推理llm论文精度】DeepSeek-R1:强化学习驱动LLM推理能力飞跃
  • arm linux下的中断处理过程。
  • C语言:指针详解
  • github用户名密码登陆失效了
  • 【删除tomcat默认管理控制台】