2.1 rust变量和基础数据类型
变量
变量是什么
-
将数据分配到临时内存位置,为了让程序员更好地操作内存
-
可以被赋值于任何的值和类型
-
rust中
let声明变量 -
rust中的变量
默认是不可变的!,前置mut可以使其为可变的ImmutableMutable
输入一个字符串并输出,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),看上去就像是函数调用
\