洗練された Rust 中級(5)- Option & Result
hatemogi
¥1,433
早割
37%
¥896中級以上 / Rust
New
New
OptionとResultに出会うと、まずunwrap()から使っていませんか?値がない場合と処理が失敗した場合を区別し、map、and_then、?で処理のステップをつなぐ方法を学びます。実行可能な例と総合演習を通して、エラーをどこまで伝播させ、どこで処理するかを自分で判断できるようになります。
中級以上
Rust
Rustで文字列を扱っていて、ハングルの長さが違って表示されたり、文字列を切り出すコードがパニックしたことはありませんか?この講義では、Stringと&strの所有権の関係からUTF-8における文字とバイトの違いまで、視覚資料と実行可能な例を用いて説明します。文字列の生成・検索・分割・変換・Unicode正規化を練習し、不要なコピーを減らしながらも安全な文字列APIを設計するための基準を身につけます。
String、&String、&strの違いを理解し、状況に応じて適切な型を選択する能力
UTF-8における文字数とバイト数を区別し、文字列を安全に切り取る能力
標準APIで文字列を生成・変更・検索・分割・結合する能力
文字列と数値・日付を変換し、誤った入力を適切に処理する能力
ハングルの異なるUnicode表現を正規化して比較する能力
文字列はユーザー入力、ファイルパス、JSONフィールド、エラーメッセージなど、ほぼすべてのプログラムで使用されます。 Rustでは、文字列を所有するStringと文字列の一部を借用する&strを区別する必要があります。
この講義では、String・&strのメモリ構造と所有権の関係を理解し、韓国語を含むUTF-8文字列を文字境界を壊さずに処理する方法を学びます。文字列の生成・変更・検索・分割・結合から、数値・日付の変換、ハングルのUnicode正規化まで、実行可能な例で確認します。
入力はできるだけ借用し、新しい文字列が必要な場合にのみ String を作成する基準も身につけます。講義を終える頃には、文字列処理関数を安全で呼び出しやすい形に設計できるようになります。
String、&String、&strがそれぞれ何を指すのかを、メモリ構造と所有権の観点から見ていきます。配列とVecのスライスを復習した後、文字列全体または一部をコピーせずに&strとして借用する方法を学びます。
入力を読み取るだけの関数、文字列を保存する関数、元のデータの一部を返す関数で、どの型を使うべきかも具体例を比較しながら説明します。
元データをコピーせず、開始位置と長さによって一部の区間を借用するスライスの構造
Rustの文字列の長さは文字数ではなくバイト数を表します。英字とハングルが混在する文字列を通じて、len、chars、bytesの違いを確認し、バイトインデックスで文字列を切り出すと、なぜパニックが発生する可能性があるのかを学びます。
続いて、文字列の生成・変更・検索・分割・結合、書式設定、数値・日付変換、ハングルのUnicode正規化を練習します。最後には、空白の整理、UTF-8の境界を守った先頭部分の抽出、設定文字列の分割、センシティブな単語のマスキングといった関数を自分で実装し、テストします。
文字数とバイト数が異なる理由
Windows、macOS、Linuxで実習できます。
最新のRust stableツールチェーンとCargoが必要です。
Rustコードを編集できるVS Code、Zedなどのエディターを用意してください。
例はRust 2024エディションを使用します。
日付とUnicode正規化の例に必要なクレートはCargoがダウンロードするため、初回ビルド時にはインターネット接続が必要です。
特別なハードウェアや高いPCスペックは必要ありません。
オンライン教材
GitHubソースコード
変数、関数、条件文、繰り返し文のようなRustの基本文法を知っている必要があります。\
所有権と借用の基本概念を理解している必要があります。
Vec とスライスを使用した経験があると良いです。
「エレガントなプログラミング言語Rust入門」講座の受講をお勧めします。
学習対象は
誰でしょう?
Rustの所有権は学んだけれど、Stringと&strをいつ使うべきか迷っている開発者
ハングル文字列の長さの計算や切り出しで予期せぬ結果やパニックに見舞われた開発者
文字列を処理する際、習慣的にcloneしたり新しいStringを作ったりする開発者
ユーザー入力、ファイル内容、設定値など、外部から入ってくる文字列を安全に処理したい開発者
前提知識、
必要でしょうか?
Rustの基本文法を理解する
Rustのメモリ所有権の概念を理解する
キャリア認証
2,265
受講生
176
受講レビュー
27
回答
4.7
講座評価
11
講座
関数型プログラミングに関心の高いバックエンド開発者です。カカオの開発チーム長、NHNの主席、LINE+のリードを務め、開発チームのリーディングを行ってきました。また、DnotitiaというAIスタートアップで開発チーム長として働き、Rustでプロジェクトを進めました。
全体
14件 ∙ (1時間 19分)
1. スライスの復習
06:14
3. UTF-8、文字とバイト
06:38
4. 文字列を作成して編集する
07:21
5. format!で書式設定する
08:13
6. 文字列を検索する
02:29
7. 文字列を分割して結合する
05:25
8. 文字列と数値の変換
02:30
9. 日付と文字列の変換
05:59
10. その他の型と文字列の変換
04:17
11. ハングルとUnicode正規化
05:36
12. 総合例題
06:50
13. 文字列 API 一覧
01:10
14. クイズ解答およびまとめ
09:58
知識共有者の他の講座はこちら
同じ分野の他の講座を見てみましょう!
新規会員登録で25%OFF
¥1,073
25%
¥1,433