const PI: f64 = 3.141592653589793;
// 定义常函数
const fn circle_area(radius: f64) -> f64 {
PI * radius * radius
}
fn main() {
// 将常函数应用在常量表达式中
const RADIUS: f64 = 5.0;
const AREA: f64 = circle_area(RADIUS);
println!("半径为 {} 的圆的面积是: {}", RADIUS, AREA);
}
代码工作原理解释:
- 定义PI常量:
const PI: f64 = 3.141592653589793;
定义了一个名为PI
的常量,类型为f64
(64位浮点数),其值为圆周率的近似值。
- 定义常函数
circle_area
:
const fn circle_area(radius: f64) -> f64 {
PI * radius * radius
}
使用const fn
定义了一个常函数circle_area
,该函数接受一个f64
类型的参数radius
(圆的半径),返回值也是f64
类型,即圆的面积。函数体中通过PI * radius * radius
计算圆的面积。
- 在
main
函数中使用常函数:
fn main() {
const RADIUS: f64 = 5.0;
const AREA: f64 = circle_area(RADIUS);
println!("半径为 {} 的圆的面积是: {}", RADIUS, AREA);
}
在main
函数中,首先定义了一个常量RADIUS
表示圆的半径为5.0。然后通过circle_area(RADIUS)
调用常函数来计算圆的面积,并将结果赋值给常量AREA
。最后使用println!
宏输出半径和对应的圆面积。由于circle_area
是常函数,在编译时就会计算出结果,所以AREA
的值在编译期就确定了。