知识碎片

Rust

  • 语法参考
  • cargo管理工具
  • rustc编译器
  • 标准库
  • crate.io库管理

一些问题

{} 和 {:?} 的区别

println!("x is {}", x); // {}指的是任意变量内容 println!("y is {:?}", y);//fmt::Debug:使用 {:?} 标记。格式化文本以供调试使用。{:#?}提供了 “美化打印” 的功能//fmt::Display:使用 {} 标记。以更优雅和友好的风格来格式化文本。

代码块{}的最后表达式加不加分号“;”的区别

let y = { let x_squared = x * x; let x_cube = x_squared * x;​ // 将此表达式赋给 `y` x_cube + x_squared + x};​let z = { // 分号结束了这个表达式,于是将 `()` 赋给 `z` 2 * x;};

给变量赋值()是什么意思

//单元类型(unit type):()。其唯一可能的值就是 () 这个空元组let z = ()

println!() 为啥要加个!号

//println! 是一个宏(macros),可以将文本输出到控制台(console)

Rust的代码文件是以.rs结尾的

$rustc hello.rs

Rust的注释

//rust的注释是// 或者 /*块注释*/

Rust的文档注释

//rust的注释是/// 或者//!

struct Structure(i32) 定义一个结构体

struct Structure(i32) //定义一个元组结构体,包含一个 `i32` 元素// 元组结构体struct Pair(i32, f32);

#![crate_attribute] 是啥意思

#![crate_attribute] //作用在crate的属性#[item_attribute] //作用在模块、项的属性
//属性的格式#[attribute = "value"]#[attribute(key = "value")]#[attribute(value)]

#[allow(dead_code)]啥意思

//死代码,不被调用的代码#[allow(dead_code)]fn unused_function() {}

\