2.1 rust变量和基础数据类型
变量
变量是什么
- 将数据分配到临时内存位置,为了让程序员更好地操作内存
- 可以被赋值于任何的值和类型
- rust中
let
声明变量 - rust中的变量
默认是不可变的!
,前置mut
可以使其为可变的Immutable
Mutable
输入一个字符串并输出,main.rs:
// 标准库io包
use std::io;
fn main() {
let mut input: String = String::new();
println!("Hello, world!");
match io::stdin().read_line(&mut input) {
Ok(_) => {
println!("Wow : {}", input);
}
_ => {}
}
}
命令行执行cargo run
rust 基本数据类型
Integer 整型
Size | Signed | Unsigned |
---|---|---|
8 bit | i8 | u8 |
16 bit | i16 | u16 |
32 bit | i32 | u32 |
64 bit | i64 | u64 |
128 bit | i128 | u128 |
arch(系统架构有关) | isize | usize |
Float 浮点型
Size | Float |
---|---|
32 bit | f32 |
64 bit | f64 |
Boolean 布尔型
true
false
Character 字符类型
单引号
let a = 'a';
let smile = '\u{1f601}';
&str 字符串类型
双引号
let cat: &str = "car";
tips:若不写类型也会自动推导,如下:
宏
!
表示宏
println!
:打印信息到终端
有关于宏,我会在后续高级教程中再去写一遍,宏是rust中比较复杂的一个东西,大致分为两类:声明式宏( declarative macros ) macro_rules!
和三种过程宏( procedural macros ):
#[derive]
,在之前多次见到的派生宏,可以为目标结构体或枚举派生指定的代码,例如Debug
特质- 类属性宏(Attribute-like macro),用于为目标添加自定义的属性
- 类函数宏(Function-like macro),看上去就像是函数调用