MENU

【Rust】関数の記法を学ぼう!

この記事を読むのに必要な時間は約 4 分です。

引き続きRust の自分用備忘録になります。今回は関数。

扱う単元はこちら😻

あわせて読みたい
Rust Playground A browser interface to the Rust compiler to experiment with the language

ではいく〜。

目次

関数

すでに何度も登場していますが他の言語と同様にプログラムの起点となるのはmain関数です。

Rust の関数宣言はスネークケースを用います。関数はfn によって宣言されます。

fn main() {
    println!("Hello, world!");

    another_function();
}

fn another_function() {
    println!("Another function.");  // 別の関数
}

一般ですね。
一点大事なのは関数はどこで定義してもよいということ。たとえmain 関数より上でanother_function関数を定義していても問題ありません。

続いて引数ありは

fn main() {
    another_function(5, 6);
}

fn another_function(x: i32, y: i32) {
    println!("The value of x is: {}", x);
    println!("The value of y is: {}", y);
}

ここも普通です。一点注意は x (仮引数)には型を明示してやる必要があるということです。

また、引数が複数ある場合は他の言語同様、カンマ区切りで指定します。

式と文

Rust では式指向性言語で、文と式の明確な使い分けがあります。

ここで文とは値を返さない命令(変数宣言など)、式とは値を返す命令です(関数呼び出し、数値演算など)。

変数宣言は値を返さないため下記のような書き方はできません。

let x = y = 5;

このlet y = 6という文は値を返さないので、x に代入するものがないんです。

下記の例を見てみましょう。{} によって作られたスコープの中でx + 1 は; をつけません。
; をつけるとこれは文となり返り値を渡さなくなります。

fn main() {
    let x = 5;

    let y = {
        let x = 3;
        x + 1
    };

    println!("The value of y is: {}", y);
}

次の項で更に見ていきましょう。

戻り値のある関数

関数の戻り値には名前をつけませんが、 -> によって型を宣言します。また、返り値はreturnをつけずにかくことができます。

下記例で 5 は式なので; をつけません。※5; とはできませんが、return 5; とすることはできます。

fn five() -> i32 {
    5
}

fn main() {
    let x = five();

    println!("The value of x is: {}", x);
}

関数は以上です。return やセミコロンをつけないという記法は新鮮でしたね!
ではまた次回に!

カテゴリー

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次