プログラミングRust の商品レビュー
図書館で借りた。 プログラミング言語Rust。「Rustはシステムプログラミングのための言語だ」から本書ははじまる。安全性に特徴があり、今後Linux kernelなどのコアな領域にも使われるとされている言語。 私は組み込み系のエンジニアであるので、「C言語さえできれば、食いっぱ...
図書館で借りた。 プログラミング言語Rust。「Rustはシステムプログラミングのための言語だ」から本書ははじまる。安全性に特徴があり、今後Linux kernelなどのコアな領域にも使われるとされている言語。 私は組み込み系のエンジニアであるので、「C言語さえできれば、食いっぱぐれることは無いでしょ」と考えていた。これまでもRuby、Pythonなどなど、数々の新しい言語が出てきたと思えば、「組み込みでは使えない」なんて評価をされてきたが、どうやらその点では覆る可能性がある。そんな言語がRustだ。 Rustのオライリー本。"ザ"が付くほどオライリー本っぽい印象だ。分厚くて、簡単な言語仕様だけでも150ページを消費する。もちろんそこには所有権やトレイトといったRustの特徴も説明される。 中盤から構造体や列挙型などに併せ、クレート、ジェネリクスといったものが並んでくる。 クロージャ、イテレータ、コレクション…Rustを理解しきるには深い。まだまだお勉強だ。
Posted by
これはとてもよかった。公式ドキュメントでは得られない、より実務っぽい例示や難易度が、さすがオライリー本という感じ。 正直読み切るにも体力のいる一冊で、また読み返さないと消化しきれてない箇所も多数だけど、習熟度を上げるには避けられない一冊だと思う。
Posted by
http://public-errata.appspot.com/errata/book/9784873118550/
Posted by
むずかしい。再読が必要であろう。Objectという言葉が余り出てこず代わりに値という言葉が頻繁に出てくる。 Someという関数?が頻繁にでてきたが?だった。 1章 なぜRustなのか Rustはシステム記述言語でC/C++の代替可能な言語を目指している。安全でありマルチスレッ...
むずかしい。再読が必要であろう。Objectという言葉が余り出てこず代わりに値という言葉が頻繁に出てくる。 Someという関数?が頻繁にでてきたが?だった。 1章 なぜRustなのか Rustはシステム記述言語でC/C++の代替可能な言語を目指している。安全でありマルチスレッドが簡単に安全に書くことができる。 2章 Rustツアー Rustの機能を広く浅く紹介している インストール トレイト ジェネリクス 所有権 借用 並列プログラム 3章 基本的な型 変数の型の紹介(たくさんある) 整数型 浮動小数点 真偽値型 文字(UniCodeがベース)、文字列型 タプル ポインタ型、参照 配列、ベクタ、スライス 4章 所有権 Rust固有の所有権について説明、所有権の移動について説明。ざっくりとはわかったが使いこなせるかは疑問 5章 参照 所有権のないポインタ型(借用) 共有参照 可変参照 6章 式 Rustは式言語、文がない 7章 エラー処理 Rustには例外がないようだ。エラーが起こりそうな関数からの返り値にはResultを持たせてエラー伝播を行わせる。あとPanicがある 8章 クレーとモジュール クレートはPythonのモジュールのようなもの? モジュールは名前空間? 9章 構造体 他の言語と大きく変わらない。タプル型構造体?、ユニット型構造体? Rustにはクラスがない。よく似た機能を構造体が担っている。クラスのようにクラス内部にメソッドを記述するのではなくimplキーワードを使ってメソッドを定義する。ジェネリック構造体? 10章 列挙型とパターン C/C++の列挙型とは違うが良く分かたなかった。 パターンも同様 11章 トレイトとジェネリクス Rustでポリモルフィズムを実現しているのがトレイトとジェネリクスである。他の言語の抽象基底クラスに相当するらしい。 12章 演算子オーバーロード トレイトにて実装されている 13章 ユーティリティトレイト Drop Sized Clone Copy DerefとDereMut Default AsRefとAsMut BorroWとBorrowMut FromとInto ToOwned 14章 クロージャ 無名関数である。 15章 イテレータ 最近ではどの言語でも実装してあるイテレータであるので違和感はない。foldは変わったループ。 16章 コレクション VecやHashMapなど 17章 文字列とテキスト 文字コードに関することでどのようにRustに実装されているか説明がある。正規表現の説明もある。 18章 入出力 I/Oの取り扱い 19章 並列性 フォークジョイン並列 チャネル 排他ロック(Mutex) 条件変数 アトミック変数 20章 マクロ C/C++のマクロより安全らしいがデバックが難しそう 21章 unsafeなコード 危険だけどRustではかけない処理をunsafeブロックかunsafe関数で記述できる。またRawポインタを使ってC/C++にリンクできる。
Posted by
- 1