問題一覧に戻る
初級関数
問題26: 関数内関数
Rustでは関数内に別の関数を定義できます。内部関数はそのスコープ内でのみ有効で、外部からアクセスできません。これによりヘルパー関数を隠蔽でき、コードの整理に役立ちます。内部関数は外部変数をキャプチャしないため、クロージャとは異なります。各関数は独立しており、引数を通じてのみデータを受け渡します。
fn main() {
// 内部関数の定義
helper(x: i32) -> i32 {
x * 2
}
let result = helper(5);
println!("Result: {}", result);
// ローカルスコープ内の関数
process(value: i32) -> i32 {
square(n: i32) -> i32 {
n * n
}
square(value) + 1
}
println!("Process 4: {}", process(4));
}