参考:https://kaisery.github.io/trpl-zh-cn/ch03-03-how-functions-work.htmlhttps://doc.rust-lang.org/book/ch03-03-how-functions-work.html
    函数和变量名使用 snake_case 规范风格。在 snakecase 中,所有字母都是小写并使用下划线分隔单词。
    函数的定义与先后位置无关。
    parameter 表示函数定义中的变量(形参)
    argument 表示调用函数时传入的具体值(实参)
    函数签名:函数的开头(第一行)的声明信息,包括参数、返回值、调用约定之类的信息。
    Rust 必须在函数定义中标注参数与返回值的类型。
    函数体:由一系列的语句和一个可选的结尾表达式构成。
    语句 (statement):是执行一些操作但不返回值的指令,并以 ; 结束。语句不返回值,无法把赋值语句赋值(比如 let x = (let y = 6); 是不允许的)。变量声明 (variable declaration)、函数定义 (function definition) 等都是语句。
    表达式 (expression):计算并产生一个值(或者说结果是一个值),结尾没有 ; 。表达式可以是语句的一部分。形式:赋值语句等号的右端、函数调用、宏调用、{...} 代码块不带 ; 的最后一行。
    如果在表达式的结尾加上 ;,它就变成了语句,而语句不会返回值。这是是否用 ; 结尾的准绳。
    代码块在赋值操作中可以充当[右值(r-values)](https://en.wikipedia.org/wiki/Value
    %28computerscience%29#lrvalue)。代码块中的最后一条 表达式将赋给[左值(l-value)](https://en.wikipedia.org/wiki/Value%28computer_science%29#lrvalue)。需要注意的是,如果代码块最后一条表达式结尾处有分号,那 么返回值将变成 () (unit 类型)。