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
noharu36
December 01, 2025
Programming
0
15
Rustを布教したい
noharu36
December 01, 2025
Tweet
Share
More Decks by noharu36
See All by noharu36
検証!会津は本当に地盤が硬いのか?
noharu36
0
10
自作オブジェクトストレージをRustで
noharu36
0
28
ファミコンに思いを馳せる〜エミュレータ自作を添えて〜
noharu36
0
10
shell自作した話
noharu36
0
15
neofetchよ、永遠に
noharu36
0
13
ISSの軌道計算をRustで
noharu36
0
16
Other Decks in Programming
See All in Programming
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
5k
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
650
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
220
Deno Tunnel を使ってみた話
kamekyame
0
310
Implementation Patterns
denyspoltorak
0
150
SQL Server 2025 LT
odashinsuke
0
140
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
5.2k
チームをチームにするEM
hitode909
0
440
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
440
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
140
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
110
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
106
220k
Everyday Curiosity
cassininazir
0
120
The Curious Case for Waylosing
cassininazir
0
200
BBQ
matthewcrist
89
10k
Marketing to machines
jonoalderson
1
4.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
130
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
370
Navigating Weather and Climate Data
rabernat
0
68
What's in a price? How to price your products and services
michaelherold
246
13k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
76
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.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を極めるとこんなコードをかけるよ