Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rustを布教したい
Search
noharu36
December 01, 2025
Programming
50
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rustを布教したい
noharu36
December 01, 2025
More Decks by noharu36
See All by noharu36
皆さんはHaskellをご存知です_しかし皆さんはHaskellが読めません_.pdf
noharu36
0
50
検証!会津は本当に地盤が硬いのか?
noharu36
0
38
自作オブジェクトストレージをRustで
noharu36
0
82
ファミコンに思いを馳せる〜エミュレータ自作を添えて〜
noharu36
0
41
shell自作した話
noharu36
0
37
neofetchよ、永遠に
noharu36
0
41
ISSの軌道計算をRustで
noharu36
0
36
Other Decks in Programming
See All in Programming
FreeBSDでZabbixを動かす
kenkino
0
310
一人だけ、Kiroが静止する日
hideg
0
120
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
170
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
380
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
150
Building an Out-of-Order CPU
latte72
1
790
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
4
2.8k
SREの越境 / SRE Collaboration
y0hgi
2
250
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
120
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
290
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
250
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Designing Powerful Visuals for Engaging Learning
tmiket
1
570
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
910
A Tale of Four Properties
chriscoyier
163
24k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Docker and Python
trallard
47
4.2k
エンジニアに許された特別な時間の終わり
watany
109
250k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Transcript
Rustを布教したい (来年も)学部2年 harukun
自己紹介 { name: 能島明希 handle: harukun origin: 広島->岡山->大阪->東京->会津 tech: {
front-end: React+TS backend: Rust, Go etc: Rust, Haskell Rust: Rust } favorites: Game, Tobacco, BoyScout, Rust, Neovim Twitter(x): https://twitter.com/pieceofharuki Blog: https://zenn.dev/haru_blog }
Rust書いたこと、ありますよね???
簡単な説明 Rustとは Rustは、Mozillaが開発したオープンソースのプログラミング言語です。 • 安全性: Rustは、メモリ安全性を保証する独自のメモリモデルを持っています。これにより、セグメンテーション フォルトやバッファオーバーフローなどのメモリ関連のバグを防ぐことができます。 • 高速性: Rustは、ゼロコスト抽象化と呼ばれる手法により、高性能なコードを生成することができます。
• 並行性: Rustは、並行プログラミングをサポートする機能が充実しています。これにより、マルチコアプロセッサを フル活用することができます。 By Gemini ※補足 静的型付け、式ベース、手続型・関数型(オブジェクト指向)、Cよりも安全でCと同じくらい早い
いいところ • 所有権 • 型システム • パターンマッチ • エコシステム(Cargo)
所有権 メモリの安全性を保証するための Rustの大きな特徴の一つ • 各値は所有者と呼ばれる変数と対応する (値を束縛する、という) • 一度に存在できる所有者は一つだけ( let s2
= s1で、メモリを2倍消費することがない) • 所有者がスコープを外れると値は破棄される • 所有権を移動させずに値にアクセスするために参照・借用を使う(関数の引数に参照をとることを借用と いう) • 可変参照はスコープ内で一つだけという制約がある
None
型システム • 強い静的型付け(制約が強い) さっきの参照も全て別の型として区別される (self, &self, mut self, &mut self
…) • 豊富な型 ex. enum, Option Result, • 強力な型推論 • Trait
Trait • Haskellでいう型クラス • 型に対して共通の振る舞いを定義できる • ジェネリクスに対して指定できる • ジェネリクスに対して実装できる(プリミティブ型含む)
None
パターンマッチ
Cargo べんり
Rustのキショいコードをみてニヤニヤしようの会
aの型はユニット ()←これ => 式ベースなので、{let b = 1}というブロックも()という値を返す c = 1という代入も式なので、aと同じ型(ユニット)になる aにc=1を代入できる
aの型はなんでしょう?
実行結果はどうなるでしょう? 結果 1, 11, 2, 12, 3, 13, 4, 14,
5, 15 mapが内部で処理の中間状態を表すMap構造体を作成して いる Mapを生成する時にMap::new(self, f)のようにselfを巻き込む ため、mapを2回呼び出すと再起的な構造になる ちなみにmapはイテレータを生成するだけなので計算は collect()を読んだ時に行われる(遅延評価)
このコード、動くかな? 関数(クロージャ)にも型があるよ でもそれはコンパイル時に内部的に作られるものだから人間には扱えないよ だからクロージャを扱うための Traitが生えてるよ! …なら、ジェネリクスな型にTraitを実装する時に制約として使えるはずだよ ね???
さらに進化させてみたよ 任意の数値型を受け取って2倍する関数 double 定義したTraitは、任意の数値型を受け取って implで実装す るOutputを返すよ 型パズルをコネコネすると、任意の数値型を受け取って2倍 する関数が作れたよ(なお実用性)
結論 みんなRustかこう!!!!!!! Traitを極めるとこんなコードをかけるよ