fn main() {
//function
println!("Hello world!");
another_function(5,6);//调用函数,并传入实参
let x = five();
println!("The value of x is {}.", x);
let y = plus_one(5);
println!("The value of y is {}.", y);
}
//定义一个带参数但没有返回值的参数
fn another_function(x: i32, y: i32){
println!("The value of x is {}", x);
println!("The value of y is {}", y);
}
//带返回值的函数,通常如果没有return关键字提前返回,一般取函数体中最后一个表达式的结果
//语句与表达式的区别: 语句后面会带有分号结束符,表达式不带分号结束符。语句执行操作但没有返回值
//表达式求值为一个单值,不能有分号结束符
//调用一个函数,调用一个宏,创建一个区块都属于表达式
{
5//这个区块返回值5
}
{
let x = 3;
x + 1 //这个区块返回值4
}
fn five() -> i32 {
5
}
fn plus_one(x: i32) -> i32 {
x + 1 //此处不能用分号结束符,否则编译时会出错,因为这个函数已定义返回值为i32数字类型
//如果写成 x + 1; 带有分号结束符则这个函数返回空的 ()元组,这与函数定义的返回值类型不符
}