变量

可变性

默认情况下是不可变的,类似 javascript 中的 const,如果需要可变,则需要前置加上 mut 关键字

fn main() {
  # 不可变
  let count = 1
  # 非法赋值,编译会报错
  count = 5

  # 可变
  let mut counts = 1
  # 合法赋值
  counts = 2
}

未使用

创建了变量却不在任何地方使用它,可以通过 _ 来手动处理,规避编译 warning

fn main() {
  # 手动声明
  let _x = 4; 
  # 会提升告警
  let y = 7;
}

变量解构

let 表达式可以进行复杂的变量解构

# 不可变 a,可变 b
let (a, mut b): (bool,bool) = (true, false);

# 可变 s1_temp,可变 s2_temp
let (mut s1_temp, mut s2_temp) = (s1.as_bytes().to_vec(), s2.as_bytes().to_vec());

# 数组解构
[c, .., d, _] = [1, 2, 3, 4, 5];
assert_eq!([c,d],[1,4])

函数变量

通过函数,定义一个变量并返回,并在另一个函数中调用它

fn str_define() -> String {
    let str = "hello".to_string();
    str
}

fn main() {
  let str = str_define();
  println!("{}", str) # 'hello'
  assert_eq!(str,'hello')
}
上次更新:
贡献者: Joe