rust勉強日記(~1/3)
備忘録。
やったこと
- 「プログラミング言語Rust」の和訳 を読んだ
- ただし「Nightly Rust」の項は読んでない。
- 途中で気になった項目などは適宜ググって補充。
- second edition とどっちを読むか迷ったが、和訳がないのは辛そうだったのでとりあえず初版読んだ。
- ↑の内容がrust1.6をベースにしているので、最新版との差分を 公式のリリース報告 で追った。
- 1.6.0と1.22.0の言語仕様上の主な差分(主観)
+=
や-=
などの演算子がオーバーロード可能に(1.8)- 空の構造体の定義方法追加(1.8)
- panic時のunwindをcatch可能に(1.9)
- deprecated属性追加(1.9)
?
演算子の導入(1.13)- try!と同等のことがより簡潔にできる
- さらに、 1.22 で
Option<T>
にも使えるようになった
- 型を記述する箇所でもマクロが使えるように(1.13)
- タプルなどのパターンマッチで
..
が使えるように(1.14) ?Sized
がwhere句で使えるように(1.15)'static
ライフタイムがstatic/constに対して自動補填(1.17)- 構造体のインスタンス生成時の同名変数の省略記法(1.17)
- pubキーワード使用時の公開範囲指定を追加(1.18)
- unionの導入(1.19)
- loopのbreak時に値を返せるように(1.19)
- 関連定数(associated constants)の導入(1.20)
&リテラル
が'static
ライフタイムを持つように(1.21)- stackではなくstatic領域に置かれる
Drop
が constやstatic変数にも使えるように(1.22)
- 個人的には
?
演算子とpubの公開範囲指定と関連定数が良さそう(小並感)
- 1.6.0と1.22.0の言語仕様上の主な差分(主観)
次にやりたいこと
- ドキュメントのsecond editionから適当に初版で漏れてそうなところがあれば読む。
- Rust by Example を読む?
- 適当に何か作ってみる
気になっている部分
- rustにおけるファイル分割の慣習(ベストプラクティス)
- ドキュメントを読んだ感じ、1ファイル=1モジュール が基本っぽいが、他言語での開発でよくあるみたいに1クラス=1ファイルにすると、1クラス=1モジュールになるのかな?
- struct定義もtraitのimplも全て同一ファイルに押し込む?
- ここらへんは既存のライブラリのソースコード読むのが良さそう
- ドキュメントを読んだ感じ、1ファイル=1モジュール が基本っぽいが、他言語での開発でよくあるみたいに1クラス=1ファイルにすると、1クラス=1モジュールになるのかな?