Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
プログラミング言語Rustの紹介
Search
eyener3
April 27, 2019
Programming
0
440
プログラミング言語Rustの紹介
eyener3
April 27, 2019
Tweet
Share
More Decks by eyener3
See All by eyener3
やさしい共同開発で自己組織化を目指したい..!!
eyener3
0
410
マクドナルドのマネージャーから学べたこと
eyener3
0
1.2k
日本酒をちょっとだけ 好きになって欲しい
eyener3
0
440
機械学習案件について
eyener3
0
520
はじまりの挨拶@あいなー
eyener3
0
270
Other Decks in Programming
See All in Programming
SpringBoot+MyBatisで例外が出たときどこを見るか
syukai
0
110
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
350
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
170
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
100
エンターテイメント業界で利用されるAWS
demuyan
0
200
スクラムチームと認知負荷 - ニフティのスクラムトーク Vol2. / NIFTY Tech Talk #18
niftycorp
PRO
1
120
Javaエンジニアのための Nodejs/Nuxt3入門
hidekatsu_izuno
0
280
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.2k
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
25
7.8k
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
3
720
Ruby Pattern Matching
bkuhlmann
0
920
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
420
Featured
See All Featured
Designing for humans not robots
tammielis
247
25k
Imperfection Machines: The Place of Print at Facebook
scottboms
258
12k
Building a Modern Day E-commerce SEO Strategy
aleyda
16
6.4k
Visualization
eitanlees
135
14k
The Cost Of JavaScript in 2023
addyosmani
14
3.8k
Web development in the modern age
philhawksworth
202
10k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
Git: the NoSQL Database
bkeepers
PRO
422
63k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
[RailsConf 2023] Rails as a piece of cake
palkan
22
3.9k
Why Our Code Smells
bkeepers
PRO
331
56k
Transcript
プログラミング言語Rust の紹介 すとまと
自己紹介 • 学習院大学理学部数学科2019年卒業 • 休職中 • github.com/stmtk1 • qiita.com/stmtk •
機械学習 / シミュレーション / ゲーム開発 /自作プログラミング 言語に興味あり
Rustとは • 2015年1月に正式リリース • 組み込み系、自作OS、プログラミング言語、ゲーム制作など で使われる • Better than C++になる予定
• 関数型
Rustの何がいいか • 誰もが読みやすいソースコードになる • コンパイラが優秀 • 書きやすい • メモリを消費しにくいようになっている
とりまHello World • brew install rust でインストール • cargo new
hello_worldでプロジェクト作成 • cd hello_world でプロジェクト内のフォルダへ移動 • cargo run で”hello world”という文字列が出てくる
Fizz Buzz プロジェクトを作成して、プロジェクト内のsrc/main.rsを次のように変更し実 行
三項演算子が使えない
代入に返り値がない
マクロはただの置換じゃない
マクロはただの置換じゃない
所有権とライフタイムとは
所有権によって解決する問題 • ガベージコレクションをする必要がなくなる • スマートポインタを使う必要がなくなる インスタンスを一つの変数だけに持たせて使い捨てにする
• 所有権の借用 • インスタンスのクローン 1つの変数を使いまわしたい
コンパイラについて • オプションで設定しなくても使われていない変数/関数があると 警告が出る • 変数名を間違えても、似た名前の変数を教えてくれる • LLVMを使っている
まとめ • 所有権とライフタイムがメモリの消費を抑える • マクロが優秀 • 可読性が高い • 束縛分配などが使えて書きやすい •
コンパイラ
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