Rust 还没到1.0,开发很快,请看官方文档
函数能够在顶层的做用域声明,也能够在函数,模块内声明。fn
关键字定义函数,后边是函数名,参数列表,参数的名字和类型以冒号分割,箭头->
后指定返回值类型
例如:函数
fn line(a: int, b: int, x: int) -> int { return a * x + b; }
函数可使用return
当即返回值, return 后边是表达式的话,return是可选的。好比能够这样写:oop
fn line(a: int, b: int, x: int) -> int { a * x + b }
这种方式是更好的Rust style。code
函数能够没有返回值,()
也是无返回值的一种。返回值类型和返回值都没有定义,下面的两个例子是等价的:作用域
fn do_nothing_the_hard_way() -> () { return (); } fn do_nothing_the_easy_way() { }
函数最后表达式有分号至关于返回()
,例如:开发
fn line(a: int, b: int, x: int) -> int { a * x + b } fn oops(a: int, b: int, x: int) -> () { a * x + b; } assert!(8 == line(5, 3, 1)); assert!(() == oops(5, 3, 1));
函数参数支持解构,例如:文档
fn first((value, _): (int, f64)) -> int { value }