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 }