すごくメモ帳

すごくほぼメモ帳ぐらいなブログ

Rust 4日目 (関数)

関数を作る

fn 関数名(仮引数: 型, ...){...}のようにする。

引数の型は必ず必要

fn func(x: i32){
    println!("{}", x);
}

fn main(){
    func(1);
}

// 1

戻り値

戻り値がある場合は、fn 関数名() -> 戻り値の型とする。

fn func() -> i32{
    1
}

fn main() {
    println!("{}", func());
}

// 1

戻り値にはセミコロン;をつけてはならない。 (returnを用いる場合は除く。)

return

fn func(x: i32, y: i32) -> i32{
    if x == y {
        return 1
    }
    0
}

fn main() {
    println!("{}", func(2, 2));
}

returnを用いることで途中でリターンすることができる。

途中でリターンが必要ない場合は用いない。

発散する関数

fn func() -> ! {
    panic!("");
}

fn main() {
    func();
}

何のためにあるのかよくわからない。

関数ポインタ

fn func() {
    println!("Hello, world");
}

fn main() {
    let f = func;
    f();
}

関数の別名と行ったところだろうか。