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

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

3e292af6bfc0f6841c4de0a801de4c7a?s=47 eyener3
April 27, 2019

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

3e292af6bfc0f6841c4de0a801de4c7a?s=128

eyener3

April 27, 2019
Tweet

More Decks by eyener3

Other Decks in Programming

Transcript

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

  2. 自己紹介 • 学習院大学理学部数学科2019年卒業 • 休職中 • github.com/stmtk1 • qiita.com/stmtk •

    機械学習 / シミュレーション / ゲーム開発 /自作プログラミング 言語に興味あり
  3. Rustとは • 2015年1月に正式リリース • 組み込み系、自作OS、プログラミング言語、ゲーム制作など で使われる • Better than C++になる予定

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

  5. とりまHello World • brew install rust でインストール • cargo new

    hello_worldでプロジェクト作成 • cd hello_world でプロジェクト内のフォルダへ移動 • cargo run で”hello world”という文字列が出てくる
  6. Fizz Buzz プロジェクトを作成して、プロジェクト内のsrc/main.rsを次のように変更し実 行

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

  8. 代入に返り値がない

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

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

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

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

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

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

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

    コンパイラ
  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