1.fn 关键字
它用来声明新函数
注意,源码中 another_function 定义在 main 函数 之后;也可以定义在之前。Rust 不关心函数定义所在的位置,只要函数被调用时出现在调用之处可见的作用域内就行。
fn main() { println!("Hello, world!"); another_function(); } fn another_function() { println!("Another function."); }
2.参数
在函数签名中,必须 声明每个参数的类型。
fn main() { another_function(5); } fn another_function(x: i32) { println!("The value of x is: {x}"); }
fn main() { print_labeled_measurement(5, 'h'); } fn print_labeled_measurement(value: i32, unit_label: char) { println!("The measurement is: {value}{unit_label}"); }
3.语句和表达式
语句(Statements)是执行一些操作但不返回值的指令。 表达式(Expressions)计算并产生一个值。
表达式的结尾没有分号,在表达式的结尾加上分号,它就变成了语句,而语句不会返回值。
函数调用是一个表达式。宏调用是一个表达式。用大括号创建的一个新的块作用域也是一个表达式。
fn main() { let y = { let x = 3; x + 1 }; println!("The value of y is: {y}"); }
4.返回值
在箭头->后声明返回值的类型
fn main() { let y=fun(4); println!("y={y}"); } fn fun(x:u32)->u32{ x+1 }