Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rustを布教したい
Search
noharu36
December 01, 2025
Programming
0
7
Rustを布教したい
noharu36
December 01, 2025
Tweet
Share
More Decks by noharu36
See All by noharu36
検証!会津は本当に地盤が硬いのか?
noharu36
0
2
自作オブジェクトストレージをRustで
noharu36
0
1
ファミコンに思いを馳せる〜エミュレータ自作を添えて〜
noharu36
0
3
shell自作した話
noharu36
0
4
neofetchよ、永遠に
noharu36
0
2
ISSの軌道計算をRustで
noharu36
0
6
Other Decks in Programming
See All in Programming
無秩序からの脱却 / Emergence from chaos
nrslib
2
11k
All(?) About Point Sets
hole
0
240
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
5.1k
Media Capture and Streams: W3C仕様と現場での知見
nowaki28
0
120
Google Antigravity and Vibe Coding: Agentic Development Guide
mickey_kubo
2
120
『実践MLOps』から学ぶ DevOps for ML
nsakki55
2
530
データファイルをAWSのDWHサービスに格納する / 20251115jawsug-tochigi
kasacchiful
2
100
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
18k
俺流レスポンシブコーディング 2025
tak_dcxi
13
6.9k
Micro Frontendsで築いた 共通基盤と運用の試行錯誤 / Building a Shared Platform with Micro Frontends: Operational Learnings
kyntk
1
1.9k
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
4
1.8k
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
130
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Mobile First: as difficult as doing things right
swwweet
225
10k
Designing for Performance
lara
610
69k
KATA
mclloyd
PRO
32
15k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Visualization
eitanlees
150
16k
Documentation Writing (for coders)
carmenintech
76
5.2k
Writing Fast Ruby
sferik
630
62k
Producing Creativity
orderedlist
PRO
348
40k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Scaling GitHub
holman
464
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
119
20k
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を極めるとこんなコードをかけるよ