Slide 1

Slide 1 text

Rust LT3 senk

Slide 2

Slide 2 text

⾃⼰紹介 法政大学で暗号研究してるM1。 競技プログラミングや、Zenn・Qiitaで暗号関 連の記事書いています。 プログラミングの他、デザインとかイラストも 好きでやっている。 【Twitter】 @enkanakoi 【最近あったこと】 昨日、修論中間発表でした Senk

Slide 3

Slide 3 text

テーマは… Rustを褒め称えるだけ

Slide 4

Slide 4 text

エラー処理 • とりあえず失敗する可能性があったら、 OptionやResultに包んでしまう。Nullを型レ ベルで扱えるのが強力すぎる。 配列外参照とオーバーフローを絶対に許せなくなった累積和 パーサーでand_thenとmapと…でメソッドチェーンする例 ポジティブに書ける!

Slide 5

Slide 5 text

cargo サブコマンドと組合わせることで • ビルド • 実⾏ • パッケージ管理 • ユニットテスト が⾏えるのが凄すぎる…のにrustfixや cargo-edit、clippyで拡張できる贅沢さ。

Slide 6

Slide 6 text

とりあえず 全⾔語欲し い機能 cargo fmt 魔法のようにコードが整形される。 cargo add & rm クレートが容易に管理できる。

Slide 7

Slide 7 text

トレイト implで追加していく書き方が好き(語彙力) その 多すぎる出来ることの例 • 型エイリアスにimpl出来る • 関連定数や関連関数をimpl出来る • トレイトオブジェクトによるポリモーフィズ ム メソッドチェーン

Slide 8

Slide 8 text

その他 • 型の暗黙の変換がない • Sizedトレイトを実装していないと渡せ ない&返せない&束縛できない • 式ベース⾔語 • デフォルトで不変 • #[test]とcargo testで⼿軽にテスト!

Slide 9

Slide 9 text

まとめ • Cargo • エラー処理 • トレイト • テスト、パターンマッチ、 型変換、 etc …. パフォーマンスやスマートポインタによる メモリ管理もある最高の言語!!