在下面的文章中,我看到了以下内容:
const fn 允许您在“const 上下文”中执行代码。例如:
const fn five() -> i32 {
5
}
const FIVE: i32 = five();
Run Code Online (Sandbox Code Playgroud)
const fn 在 Rust 中到底做了什么?难道只是说函数可以在编译时完全计算出来(我的猜测是基于阅读文章)
某些表达式(称为常量表达式)可以在编译时求值。在const上下文中,这些是唯一允许的表达式,并且始终在编译时求值。在其他地方,例如let语句,常量表达式可能(但不保证)在编译时计算。
明显的问题是,保证在编译时计算哪些表达式。他们是:
Aconst fn是一个允许从const上下文调用的函数。当从上下文调用时,该函数由编译器在编译时const解释。解释发生在编译目标的环境中,而不是主机的环境中。如果您针对 32 位系统进行编译,则 32 位也是如此,无论您是在 64 位还是 32 位系统上进行构建。usize
Const 函数有各种限制,以确保它们可以在编译时求值。例如,不可能将随机数生成器编写为函数const。const在编译时调用函数始终会产生与在运行时调用函数相同的结果,即使多次调用也是如此。
有关更多详细信息,请参阅此处。
| 归档时间: |
|
| 查看次数: |
3519 次 |
| 最近记录: |