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

プログラミング言語Rustの紹介

eyener3
April 27, 2019

 プログラミング言語Rustの紹介

eyener3

April 27, 2019
Tweet

More Decks by eyener3

Other Decks in Programming

Transcript

  1. プログラミング言語Rust
    の紹介
    すとまと

    View Slide

  2. 自己紹介
    • 学習院大学理学部数学科2019年卒業
    • 休職中
    • github.com/stmtk1
    • qiita.com/stmtk
    • 機械学習 / シミュレーション / ゲーム開発 /自作プログラミング
    言語に興味あり

    View Slide

  3. Rustとは
    • 2015年1月に正式リリース
    • 組み込み系、自作OS、プログラミング言語、ゲーム制作など
    で使われる
    • Better than C++になる予定
    • 関数型

    View Slide

  4. Rustの何がいいか
    • 誰もが読みやすいソースコードになる
    • コンパイラが優秀
    • 書きやすい
    • メモリを消費しにくいようになっている

    View Slide

  5. とりまHello World
    • brew install rust でインストール
    • cargo new hello_worldでプロジェクト作成
    • cd hello_world でプロジェクト内のフォルダへ移動
    • cargo run で”hello world”という文字列が出てくる

    View Slide

  6. Fizz Buzz
    プロジェクトを作成して、プロジェクト内のsrc/main.rsを次のように変更し実

    View Slide

  7. 三項演算子が使えない

    View Slide

  8. 代入に返り値がない

    View Slide

  9. マクロはただの置換じゃない

    View Slide

  10. マクロはただの置換じゃない

    View Slide

  11. 所有権とライフタイムとは

    View Slide

  12. 所有権によって解決する問題
    • ガベージコレクションをする必要がなくなる
    • スマートポインタを使う必要がなくなる
    インスタンスを一つの変数だけに持たせて使い捨てにする

    View Slide

  13. • 所有権の借用
    • インスタンスのクローン
    1つの変数を使いまわしたい

    View Slide

  14. コンパイラについて
    • オプションで設定しなくても使われていない変数/関数があると
    警告が出る
    • 変数名を間違えても、似た名前の変数を教えてくれる
    • LLVMを使っている

    View Slide

  15. まとめ
    • 所有権とライフタイムがメモリの消費を抑える
    • マクロが優秀
    • 可読性が高い
    • 束縛分配などが使えて書きやすい
    • コンパイラ

    View Slide

  16. Tutorial
    https://doc.rust-jp.rs/the-rust-programming-language-ja/1.6/book/
    https://doc.rust-lang.org/1.3.0/book/hello-cargo.html
    https://doc.rust-jp.rs/book/second-edition/foreword.html

    View Slide