Rustは、現在最も注目を集めているプログラミング言語の1つ。安全性と高性能を両立しているのが特徴だ。この連載では、Web開発を題材にRustの使い方を学んでいく。

Web開発で学ぶ最新言語Rust
目次
-
共有すると値は変更不可?この問題を解決するRustの「内部可変性」
前回紹介した「Rc(参照カウント)」には少し使いにくい面がある。今回は、それを補う「RefCell」というスマートポインターを紹介する。
-
参照カウントをうまく使い、Rustコンパイラーの厳しいチェックを回避
今回は、Boxと並んでよく使われるスマートポインター「Rc」、すなわち「参照カウント」について見ていこう。1つのノードを2つのノードから共有するリストについて考えてみる。
-
Rustでは「所有権」が足かせになるリストの実装、その解決策とは
Rustにはメモリー安全性を担保するために「所有権」という仕組みがある。しかし所有権は、いくつかのデータ構造の実装において障害になることがある。この問題に対処するには、Rustに備わっている「スマートポインター」という機能を利用する。
-
Rustの「トレイト」にもう1つの使い方、様々な機能を手軽に切り替える
Rustのトレイトは、処理の共通化以外にも使われることがある。トレイトを実装していることを型に求める「トレイト境界」を利用し、トレイト境界を満たした場合に特定の機能を有効にするといった使い方をするケースがある。
-
型を操るのに不可欠なRustの「トレイト」、共通の振る舞いを指定する
今回はRustのトレイトについて説明する。トレイトは型に対して共通の振る舞いを設定できるようにする機能だ。
-
これぞ抽象化の威力、型をまとめて扱えるRustの「ジェネリクス」
Rustのジェネリクスという機能を利用すると「適用される型が異なるだけで、処理の根幹は同じ」というケースをまとめられる。プログラムの再利用性が高まるといった実務上のメリットもある。
-
Rustの革新性を支える「ライフタイム」、メモリー関連の脆弱性を防ぐ
プログラムでは「値のライフタイム」と「参照のライフタイム」の2種類がある。Rustでは、参照のライフタイムをコンパイル時に解析し、不適切な場合にはコンパイルエラーとして検出する。Rustのメモリー安全性を支える根本がライフタイムである。
-
Rustの所有権に不可欠の知識、コピーや借用について理解する
Rustに「所有権」という概念がある。これを理解するには、ムーブとコピーの違い、借用という概念を理解する必要がある。
-
他の言語で動くコードがRustでは動かない、鬼門の「所有権」を理解する
今月は、Rustで理解が難しい「鬼門」とよく言われる「所有権」や「ライフタイム」といった概念を解説する。これらはルールを知っただけではなかなか理解するのが難しい概念だ。習うより慣れろの精神で体得していくのがよいと筆者は考えている。サンプルコードを動かしながら読み進めてほしい。
-
Rustの型を駆使して検索コマンド「grep」を実装してみよう
ここまでで紹介した型をいくつか使いながら、「grep」というコマンドを実装してみよう。grepは、ファイルの中から「文字列(パターン)」を探し出し、それが含まれている行を表示するコマンドだ。
-
独自の型定義でRustの実力を引き出す、構造体と列挙型を極めよう
基本データ型だけでは表現力が足りないケースがある。このようなニーズに応えるため、Rustには構造体(struct)と列挙型(enum)が用意されている。これらを駆使することで、ユーザーが独自に定義する「カスタム型」を利用できるようになる。
-
これがなくては始まらない、Rustの基本データ型を一望する
プログラミングにおいて「型」は重要な概念だ。ここからはRustの型について順に見ていこう。まずは基本データ型(プリミティブ型)だ。
-
これであなたもRustマスター、独自の構文を自在に使いこなす
今回は、Rustの具体的な構文を見ていこう。変数宣言の仕方、条件分岐やループ処理などの制御構文、関数宣言について説明する。
-
Rustを使うのはこんなに楽しい!「不思議な予想」で体験しよう
今回は、Rustで書いたアプリケーションを実際に動かして、Rustを使う楽しさを体感してみよう。例題に選んだのは「コラッツ予想」という数学の問題だ。
-
圧倒的な安全性と高性能を両立、常識を覆す次世代言語「Rust」のすごさ
Rustは、現在最も注目を集めているプログラミング言語の1つといっていいだろう。Rustは、言語仕様が比較的難しい部類の言語であることは間違いない。しかし、それを上回る安全性と速度の担保、優れた開発者体験――そして使う楽しさがある。
日経クロステック Special
What's New
経営
- クリニック向け営業を変革する新サービス
- 【動画解説】DX推進でビジネスを変革
- 人的資本投資の現状や課題をLIVEで議論
- 今注目すべき「スーパーパワーズ」≫詳細
- 千代田区が描く「自治体DX」の理想像とは
- 非IT人財を巻き込んだDX戦略の実現法
- 富士通が目指す「心の豊かな」社会とは
- 誰ひとり取り残されないデジタル化の要諦
- DXで業務効率化は目指すな≫その理由は?
- 旭化成、サッポロビール≫AI活用最新事例
- 日本郵船にインテルが聞く「データ利活用」
- 「レガシー対応」+「DX」両輪を回す極意
- 実はDXは「間違いだらけ」?理由と打開策
- ソニーミュージック事例/顧客データ活用法
- テレワーク環境で気軽な雑談を実現する方法