Rust 中的 const()函数

Nilesh Katuwal 2022年6月7日
Rust 中的 const()函数

在本文中,我们将了解 Rust 中的 const() 是什么。

Rust 中的 const()

当在整个程序中多次使用特定值时,重复复制它可能很麻烦。此外,将其作为从函数传递到函数的变量并不总是可能或可取的。

在这些情况下,const 关键字是复制代码的有用替代方法。

Rust 有两种类型的常量,可以在任何范围内声明,包括全局。两者都需要明确的类型注释:

  1. const - 一个不可更改的值(典型情况)

  2. static - 具有静态生命周期的可变变量

    静态寿命是推导出来的,因此不需要指定。访问或更改可变静态变量是不安全的。

例子:

fn main() {
   const THE_LIMIT:i32 = 120;
   const NUM:f32 = 3.14;

   println!("The limit of user is {}", THE_LIMIT);
   println!("The value of num is {}",NUM);
}

输出:

The limit of user is 120
The value of num is 3.14

常量应该显式输入;与 let 不同,你不能让编译器确定它们的类型。任何常量值都可以在 const 中定义,这是包含在常量中的绝大多数有意义的东西;例如,const 不能应用于文件。

conststatic 项目之间的惊人相似之处造成了何时应该使用每个项目的不确定性。常量在使用时是倾斜的,使其用法等同于简单地将 const 名称替换为其值。

相反,静态变量指向所有访问共享的单个内存地址。这意味着,与常量不同,它们不能具有析构函数并且在整个代码库中作为单个值运行。

const 关键字也可以在没有原始指针的情况下使用,如 const Tmut T. 所见。

例子:

static LANGUAGE: &str = "Rust";
const LIMIT: i32 = 10;

fn is_big(n: i32) -> bool {
    n > LIMIT
}

fn main() {
    let n = 16;
    println!("{} is a programming language.", LANGUAGE);
    println!("The limit is {}", LIMIT);
    println!("{} is {}", n, if is_big(n) { "large" } else { "small" });

}

输出:

Rust is a programming language.
The limit is 10
16 is large