関数
fn gcd(a: u32, b: u32) -> u32 { if b > 0 { gcd(b, a % b) } else { a } } fn main() { println!("gcd: {}", gcd(143, 52)); }
This slide should take about 3 minutes.
- 宣言パラメータの後には型(一部のプログラミング言語と逆)、戻り値の型が続きます。
- 関数本体(または任意のブロック)内の最後の式が戻り値になります。式の末尾の
;
を省略します。return
キーワードは早期リターンに使用できますが、関数の最後は「裸の値」の形式にするのが慣用的です(return
を使用するにはgcd
をリファクタリングします)。 - Some functions have no return value, and return the 'unit type',
()
. The compiler will infer this if the return type is omitted. - オーバーロードはサポートされていません。各関数の実装は 1 つです。
- 常に固定数のパラメータを受け取ります。デフォルトの引数はサポートされていません。マクロを使用して可変関数をサポートできます。
- 常に 1 つのパラメータ型セットを受け取ります。これらの型は汎用にすることもできますが、これについては後で説明します。