← Rust コース
15. 関連関数 — ::new とコンストラクタ
impl ブロックには self を取らない関数も書けます。これを関連関数と呼び、Circle::new(3.5) のように「型名::関数名」で呼び出します。String::from もこの形です。
もっともよく使うのはインスタンスを作る new で、Rust にはコンストラクタ構文がない代わりにこの慣習があります。初期化のロジックを new に集めておけば、フィールドの構成が変わっても呼び出し側の修正を最小限にできます。
戻り値の型は Self と書くと「この impl の対象の型」を指せます。型名を繰り返さずに済むので、new の戻り値は -> Self と書くのが定番です。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
Rust