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