見出し画像

関数

Rustでは関数は、fnを用いて表す。
fn main () {}も関数である。
呼び出しは、関数名()で記述する。
関数は呼び出しの前でも後でもOK。

fn say_hello() {
    println!("Hello!");
}

fn main() {
    say_hello();
}
$ cargo run

Hello!

ほかの言語の関数と同様に、引数を与えることができる。
引数の型は推論できないので、明示的に指定する必要がある。
引数が複数ある場合は、カンマで区切る。
戻り値がある場合は、->と型を明示的に記載する。
戻り値は、return a のようにも記載することができるが、Rustでは最後に";"を付けないことで、戻り値であることが認識される。
後者の書き方が、Rustでは一般的である。

fn add(a: i32, b: i32) -> i32 {
    //return a + b;
    a + b // こちらが一般的
}

fn main() {
    println!("{}", add(1, 2));
}
$ cargo run

3

また、関数の戻り値を変数に束縛することもできる。

fn add(a: i32, b: i32) -> i32 {
    //return a + b;
    a + b // こちらが一般的
}


fn main() {
    let c = add(3, 4);
    println!("{}", c);
}
$ cargo run

7

戻り値のない関数はunit型()を返す。

fn say_hello() {
    println!("Hello!");
}

fn main() {
    let d = say_hello();
    println!("{:?}", d);
}
$ cargo run

Hello!
()


この記事が気に入ったらサポートをしてみませんか?