式と文
最後の式
「式と文」はCoddyKit上の無料Learn Rust Codingレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn Rust Coding学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn Rust Codingコースには全4レッスンが含まれています。
文と式
Rustでは、コードを2種類に区別します。
- 文は処理を実行しますが、値を返しません。
- 式は評価されて値になります。
この違いが、関数から値を返す方法を形作ります。
fn main() {
let x = 5; // a let statement
let y = x + 1; // x + 1 is an expression
println!("{}", y);
}letは文
letによる束縛は文です。値を返さないため、let a = (let b = 6);のようには書けません。
fn main() {
let a = 6;
// let c = (let d = 6); // error: let is not an expression
println!("{}", a);
}式は値に評価される
算術演算、関数呼び出し、リテラルは、すべて値を生成するため式です。
52 + 3square(4)
fn main() {
let v = 2 + 3 * 4;
println!("{}", v);
}ブロックは式
ブロック{ ... }自体が式です。末尾にセミコロンがなければ、その値は内部にある最後の式の値になります。
fn main() {
let y = {
let x = 3;
x + 1
};
println!("y is {}", y);
}セミコロンが重要な理由
セミコロンを付けると、式は文になり、その値は破棄されます。
x + 1— 式であり、値を生成します。x + 1;— 文であり、()を生成します。
fn main() {
let y = {
let x = 3;
x + 1 // no semicolon: this is the block's value
};
println!("{}", y);
}最後の式が戻り値になる
関数では、セミコロンのない最後の式が戻り値になります。これはRustで一般的な書き方です。
fn main() {
println!("{}", five());
}
fn five() -> i32 {
5
}セミコロンが戻り値を壊す
最後の行に誤ってセミコロンを付けると、関数は値の代わりに()を返します。これは初心者によくある間違いです。
fn main() {
println!("{}", plus_one(10));
}
fn plus_one(n: i32) -> i32 {
n + 1 // correct: no semicolon
}式としてのif
ifは式なので、その結果を変数に代入できます。両方の分岐は同じ型を生成する必要があります。
fn main() {
let condition = true;
let number = if condition { 5 } else { 6 };
println!("number is {}", number);
}式としてのloop
loopはbreakを通じて値を返せます。breakの後に指定した値が、ループの結果になります。
fn main() {
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2;
}
};
println!("result {}", result);
}式としてのmatch
matchも式です。各アームが値を生成し、マッチしたアームの値が結果になります。
fn main() {
let n = 2;
let label = match n {
1 => "one",
2 => "two",
_ => "many",
};
println!("{}", label);
}すべてを組み合わせる
ブロックや制御フローを式として扱うことで、Rustのコードを簡潔にできます。計算と戻り値の返却を、1つの自然な手順で行えます。
fn main() {
let score = 85;
let grade = if score >= 90 { 'A' } else if score >= 80 { 'B' } else { 'C' };
println!("grade {}", grade);
}理解度チェック
式にセミコロンを付けると、どうなりますか。
まとめ
Rustの式と文:
- 文(
letなど)は処理を行いますが、値を返しません。 - 式は評価されて値になります。
- ブロック、
if、match、loopは式です。 - セミコロンのない最後の式が戻り値になります。
fn main() {
let x = { let a = 2; a * a };
let y = if x > 3 { "big" } else { "small" };
println!("{} {}", x, y);
}よくある質問
「式と文」レッスンは無料ですか?
はい。「式と文」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn Rust Codingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn Rust Codingコースには全4レッスンが含まれています。
「式と文」で何を学びますか?
最後の式 ブラウザで直接実行するハンズオンコードでLearn Rust Codingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Learn Rust Codingを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLearn Rust Codingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「式と文」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLearn Rust Codingレッスンでコードを書いて実行できますか?
はい。すべてのLearn Rust Codingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。