0Pricing
Learn Rust Coding · レッスン

関数の定義

パラメーターと戻り値

「関数の定義」はCoddyKit上の無料Learn Rust Codingレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn Rust Coding学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn Rust Codingコースには全4レッスンが含まれています。

関数の宣言

fnキーワード、名前、かっこ、そして波かっこで囲んだ本体を使って関数を定義します。

Rustでは、慣例として関数名にsnake_caseを使用します。

fn main() {
    greet();
}

fn greet() {
    println!("Hello from a function!");
}

main関数

すべての実行可能なRustプログラムはfn main()から始まります。これはランタイムが最初に呼び出すエントリポイントです。

fn main() {
    println!("Program starts here");
}

パラメーター

関数はパラメーターを受け取れます。各パラメーターでは、コロンの後に型を宣言する必要があります。

fn main() {
    print_number(7);
}

fn print_number(x: i32) {
    println!("The number is {}", x);
}

複数のパラメーター

複数のパラメーターはコンマで区切ります。それぞれに独自の型注釈が必要です。

fn main() {
    describe("Rust", 2010);
}

fn describe(name: &str, year: i32) {
    println!("{} was released in {}", name, year);
}

戻り値

矢印->の後に戻り値の型を宣言します。関数はその型の値を返します。

最後の式(セミコロンなし)が戻り値になります。

fn main() {
    let result = square(5);
    println!("square is {}", result);
}

fn square(n: i32) -> i32 {
    n * n
}

returnキーワード

returnキーワードを使って、途中で戻ることもできます。ガード条件に便利です。

fn main() {
    println!("{}", abs_value(-8));
}

fn abs_value(n: i32) -> i32 {
    if n < 0 {
        return -n;
    }
    n
}

パラメーターと戻り値の組み合わせ

関数は一般的に入力を受け取り、出力を生成します。ここでは2つの数値を加算します。

fn main() {
    let total = add(3, 4);
    println!("total {}", total);
}

fn add(a: i32, b: i32) -> i32 {
    a + b
}

関数から関数を呼び出す

関数から別の関数を呼び出せるため、小さく再利用可能な部品を組み合わせて、より大きな処理を構築できます。

fn main() {
    println!("{}", double_then_add(5));
}

fn double(n: i32) -> i32 { n * 2 }

fn double_then_add(n: i32) -> i32 {
    double(n) + 1
}

その他の型を返す

関数は、文字列、ブール値、タプルなど、任意の型を返せます。

fn main() {
    let (sum, product) = compute(3, 4);
    println!("sum {} product {}", sum, product);
}

fn compute(a: i32, b: i32) -> (i32, i32) {
    (a + b, a * b)
}

戻り値のない関数

矢印のない関数は、ユニット型()を返します。出力などの副作用によって処理を行います。

fn main() {
    log_message("saving file");
}

fn log_message(msg: &str) {
    println!("[LOG] {}", msg);
}

順序は関係ない

一部の言語とは異なり、Rustではファイル内で後から定義されている関数も呼び出せます。コンパイラーは実行前にすべての関数を認識します。

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

fn helper() -> i32 {
    99
}

理解度チェック

Rustの関数が値を返す方法を思い出しましょう。

まとめ

Rustの関数:

  • fn name(params) -> ReturnType { ... }の形式で定義します。
  • パラメーターには明示的な型が必要です。
  • 最後の式(セミコロンなし)が戻り値になります。または、途中でreturnを使用できます。
  • 戻り値の型を指定しない場合は、()を返します。
fn main() {
    let area = rectangle_area(4, 6);
    println!("area {}", area);
}

fn rectangle_area(w: i32, h: i32) -> i32 {
    w * h
}

よくある質問

「関数の定義」レッスンは無料ですか?

はい。「関数の定義」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn Rust Codingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn Rust Codingコースには全4レッスンが含まれています。

「関数の定義」で何を学びますか?

パラメーターと戻り値 ブラウザで直接実行するハンズオンコードでLearn Rust Codingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn Rust Codingを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn Rust Codingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「関数の定義」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn Rust Codingレッスンでコードを書いて実行できますか?

はい。すべてのLearn Rust Codingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 関数の定義
  2. 式と文
  3. クロージャ
  4. Fn、FnMut、FnOnce
← Learn Rust Codingに戻る