📜  Rust 中的变量

📅  最后修改于: 2022-05-13 01:54:28.705000             🧑  作者: Mango

Rust 中的变量

变量是用于存储要在程序中引用和操作的信息的内存地址。它们还提供了一种用描述性名称定义数据的方法,这样读者和我们自己就可以更清楚地理解我们的程序。将变量视为保存信息的容器是有帮助的。它们的唯一目的是在内存中标记和存储数据。然后可以根据其范围在整个程序中使用这些数据。

让我们举一个 Rust 程序的例子,它打印出 GeeksForGeeks,无论是否将其存储在变量中。

Rust
fn main() {
    println!("Welcome to GeeksForGeeks");
    let x = "GeeksForGeeks";
    println!("Welcome to {}", x);
}
  
// output without using variable
Welcome to GeeksForGeeks
  
// output using variable
Welcome to GeeksForGeeks


Rust
fn main(){
  let x = "Geeksforgeeks";
  println!("{}",x);
}


Rust
fn main() {
    let x = 0;
    println!("The value of x is: {}", x);
    x = 1;
    println!("The value of x is: {}", x);
}


Rust
fn main() {
  const N: i32 = 1;
  println!("num: {}", N);
}


Rust
fn main() {
  let ( first, middle, last ) = ("geeks", "for","geeks");
  println!("{} {} {} is amazing", first, middle, last );
}


Rust
fn main() {
  
    // original value of gfg 
    // variable is 100
    let gfg = 100;
      
    // gfg variable has value
    // 100-50 = 50 here
    // gfg variable got shadowed
    let gfg = gfg -50;
      
    // Again gfg variable has value
    // 50*5 = 250
    // gfg variable got shadowed again
    let gfg = gfg * 5;
  
    println!("The value of gfg is: {}", gfg);
}


在上面的程序中,我们打印了两个输出:

  • 在第一个打印语句中,我们直接打印输出,没有将值存储在变量中。
  • 但是在第二个中,我们使用变量“x”来存储值“GeeksForGeeks”,然后使用该变量代替。

声明一个变量

在 Rust 中,我们可以通过使用let 关键字或 const 关键字将数据分配给字母数字单词(不包括关键字)来创建变量。



Syntax: let x = "Value"; or const x = "Value";

例子:

fn main(){
  let x = "Geeksforgeeks";
  println!("{}",x);
}

输出:

Geeksforgeeks

在上面的程序中,我们使用变量“x”来存储字符串“GeeksForGeeks”

  • let 关键字(const 关键字)建议编译器将字母“x”视为内存中字符串“GeeksForGeeks”的标签。
  • 可以在let 关键字const 关键字之后添加mut 关键字以使变量可变。
  • Rust 编译器可以检测变量的数据类型,但也可以显式定义变量的数据类型。

可变性

不变性或不可变对象是在创建或分配后其状态或阀门无法修改的对象。而可变性或可变对象是在创建或分配后可以修改其状态或阀门的对象。默认情况下,所有 rust 变量都是不可变的。

让我们举一个例子程序,我们试图改变变量值,这给了我们一个错误

fn main() {
    let x = 0;
    println!("The value of x is: {}", x);
    x = 1;
    println!("The value of x is: {}", x);
}

输出:



正如您从图片中看到的,程序无法编译并给了我们一个错误。 rust 编译器检测到它要求使用“mut x”而不是普通的 xmut是 rust 中使用的关键字,表示对象或变量是可变的。让我们添加 mut 并重试。

编译没有错误

在上面的 rust 程序中,我们在变量前使用了let 关键字letconst与其他编程语言中的相同。在 Rust 中,不允许对常量使用mut 关键字,默认情况下,常量不是不可变的。

示例:常量变量的示例。

fn main() {
  const N: i32 = 1;
  println!("num: {}", N);
}

输出:

num: 1

我们还可以在一行中声明多个变量,如下所示:

例子:

fn main() {
  let ( first, middle, last ) = ("geeks", "for","geeks");
  println!("{} {} {} is amazing", first, middle, last );
}

输出:

geeks for geeks is amazing

阴影

阴影是我们可以临时使变量可变的一个实例。 Rust 支持变量的阴影。阴影还允许更改变量的数据类型。在 Rust 中,您可以声明一个与先前声明的变量同名的新变量,该变量隐藏了前一个变量,这意味着第二个变量的值是使用该变量时出现的值。

fn main() {
  
    // original value of gfg 
    // variable is 100
    let gfg = 100;
      
    // gfg variable has value
    // 100-50 = 50 here
    // gfg variable got shadowed
    let gfg = gfg -50;
      
    // Again gfg variable has value
    // 50*5 = 250
    // gfg variable got shadowed again
    let gfg = gfg * 5;
  
    println!("The value of gfg is: {}", gfg);
}

输出:

The value of gfg is: 250