函數(shù)
//無參無返回值的函數(shù)
fn 函數(shù)名( ){
//函數(shù)體
}
//帶參數(shù)的函數(shù)
fn 函數(shù)名(形參1:類型, 形參2:類型){
}
//帶參數(shù)和形參的函數(shù)
fn 函數(shù)名(形參1:類型, 形參2:類型)-> 類型 {
}
- Rust代碼中的函數(shù)和變量建議使用snake_case風(fēng)格肴裙,即所有字母都是用小寫并使用下劃線分隔單詞戚长。
語句和表達(dá)式
函數(shù)是由一系列的語句和一個(gè)可選的表達(dá)式構(gòu)成摹迷,Rust是一門基于表達(dá)式的語言罢吃,這是一個(gè)需要理解的重要區(qū)別棒妨。
語句:執(zhí)行一些操作但不返回值的指令露氮。表達(dá)式:計(jì)算并產(chǎn)生一個(gè)值祖灰。
//這是一個(gè)語句
let y = 6;
語句是不返回值的因此下面的代碼是錯(cuò)誤的
let x1 = (let y1 = 6); //編譯錯(cuò)誤
表達(dá)式會(huì)計(jì)算出一些值,函數(shù)調(diào)用是一個(gè)表達(dá)式畔规,宏調(diào)用是表達(dá)式局扶,用來創(chuàng)建作用域的大括號(hào)也是表達(dá)式.
fn main(){
let x = {
let y = 3; //這是一個(gè)語句
y+1 //這是一個(gè)表達(dá)式,因此{(lán)}表示是將返回4
};
println!("the value = {:?}",y);
}
=========運(yùn)行結(jié)果============
the value = 4
============================
fn main(){
let y = {
let mut x = 3;
x = 7 //這是一個(gè)復(fù)制語句叁扫,由于{}內(nèi)沒有返回任何值详民,y將會(huì)得到一個(gè)空的元組()
};
println!("the value = {:?}",y);
}
=========運(yùn)行結(jié)果============
the value = ()//得到一個(gè)空的元組
============================
一個(gè)函數(shù)例子
fn main(){
let x = 3;
let y = 4;
let sum = plus1(x, y);
let sum2 = plus2(sum, sum);
println!("the value = {:?}",sum2);
}
//使用表示式作為返回值
fn plus1(x1:i32, x2:i32)->i32{
x1+x2
}
//使用返回語句返回函數(shù)值
fn plus2(x1:i32, x2:i32)->i32{
return x1+x2;
}
與C語言不同,Rust的函數(shù)定義和函數(shù)調(diào)用沒有先后順序