Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rustの好きな3つの点

423937a0c98935f3059c0e84600ef9af?s=47 senk
February 25, 2021

 Rustの好きな3つの点

RustLT会において発表したRustの好きなポイントについて語るLT資料です。

423937a0c98935f3059c0e84600ef9af?s=128

senk

February 25, 2021
Tweet

Transcript

  1. Rust LT3 senk

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

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

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

  5. cargo サブコマンドと組合わせることで • ビルド • 実⾏ • パッケージ管理 • ユニットテスト

    が⾏えるのが凄すぎる…のにrustfixや cargo-edit、clippyで拡張できる贅沢さ。
  6. とりあえず 全⾔語欲し い機能 cargo fmt 魔法のようにコードが整形される。 cargo add & rm

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

    ム メソッドチェーン
  8. その他 • 型の暗黙の変換がない • Sizedトレイトを実装していないと渡せ ない&返せない&束縛できない • 式ベース⾔語 • デフォルトで不変

    • #[test]とcargo testで⼿軽にテスト!
  9. まとめ • Cargo • エラー処理 • トレイト • テスト、パターンマッチ、 型変換、

    etc …. パフォーマンスやスマートポインタによる メモリ管理もある最高の言語!!