rust 入門録
rust の日本語チュートリアルを読んでみた
基本
すべての関数や構造体などの rust の要素は private
public とするためには pub と明示する必要がある
変数は基本的に immutable で、mutable な変数とする際は &mut を変数定義の際に明示する必要がある
いきなり他の言語とは異なる仕様だなあと感じた
mutable な変数を定義時に明示することは意識付けとしてはとても良いものだなあと感じた
エラーハンドリング
しないと linter やコンパイラに怒られる
セミコロン
値を返すのであればセミコロンを付けない
この仕様になれるには少し時間がかかりそう
とはいえ不適切であればコンパイラがちゃんと怒ってくれるから安心ではある
所有権
変数が有効である部分を明確にするための仕組み
C / C++ などでなんとなく利用していたポインタで指定されている先の値の変更がカジュアルには行えなくなっている
C / C++ 出身の人はみんな嬉しい
ここのツラみを理解していない人については所有権の必要性を理解するのに時間がかかってしまうのでは?
rust の敷居が高くなっている1つの要因?
値を返すことでも所有権は移動する(忘れがち)
借用
ポインタ参照の仕組み
ポインタの指定先の値を変更するには関数の引数に &mut の明示が必要
オブジェクトに対して読み込みのみで足りるのであれば借用を使用する
match
すべての型のパターンを拾えないとコンパイルエラーが出る
_ を使用すればすべてのパターンを拾える