プログラミング言語Rust入門―実行スピードとメモリの安全性を同時に満たすシステム開発言語 [単行本]
    • プログラミング言語Rust入門―実行スピードとメモリの安全性を同時に満たすシステム開発言語 [単行本]

    • ¥3,960119 ゴールドポイント(3%還元)
    • 在庫あり2025年8月2日土曜日までヨドバシエクストリームサービス便(無料)がお届け
100000009003270710

プログラミング言語Rust入門―実行スピードとメモリの安全性を同時に満たすシステム開発言語 [単行本]

価格:¥3,960(税込)
ゴールドポイント:119 ゴールドポイント(3%還元)(¥119相当)
フォーマット:
お届け日:在庫あり今すぐのご注文で、2025年8月2日土曜日までヨドバシエクストリームサービス便(無料)がお届けします。届け先変更]詳しくはこちら
出版社:日経BP社
販売開始日: 2020/03/26
お取り扱い: のお取り扱い商品です。
ご確認事項:返品不可
店舗受け取りが可能です
マルチメディアAkibaマルチメディア梅田マルチメディア博多にて24時間営業時間外でもお受け取りいただけるようになりました

プログラミング言語Rust入門―実行スピードとメモリの安全性を同時に満たすシステム開発言語 の 商品概要

  • 要旨(「BOOK」データベースより)

    Rustは、Firefoxの開発元であるMozillaが支援するオープンソースのプログラミング言語です。2017年末に公開されたFirefoxのレンダリングエンジンの記述に使用され、その実行速度を2倍にしたことで有名になりました。オブジェクト指向と関数型の言語特徴を持ち、JavaやC#のようにVM(Virtual Machine)上の動作ではないため、既存のC言語のライブラリを直接扱える利点を持っています。またRustは、CやC++で発生しうる不正メモリアクセスに関する問題を、ある程度回避できるように設計されています。Rustはまだ新しい言語なので、本書の前半は実務に必要な詳しい文法を解説しています。文法や具体例などは、簡単なRustのコードを動かして確認しながら説明を進めています。後半は、具体的な利用法(Web API呼び出し、データベースアクセスなど)を中心に説明し、すでに他の言語(C++やC#、Javaなど)で同様にプログラミングをしたことのある読者を対象としています。
  • 目次

    はじめに

    第1章 Rustの特徴
     1.1 なぜRustなのか
     1.2 高いパフォーマンス
     1.3 型安全性
     1.4 ビルドシステム
     1.5 モダンな文法
    第2章 環境構築
     2.1 Rustのインストール
      2.1.1 Linux とmacOSへのインストール
      2.1.2 Windowsへのインストール
      2.1.3 Windows for Linuxへのインストール
      2.1.4 Visual Studio Codeの利用
      2.1.5 rustupの利用
     2.2 Hello Worldプログラム
      2.2.1 cargo new
      2.2.2 cargo の構造
      2.2.3 cargo build
      2.2.4 cargo run
      2.2.5 rustc の利用
    第3章 基本的な型、変数の扱い、束縛
     3.1 型の宣言
      3.1.1 数値の型
      3.1.2 数値の型
      3.1.3 リテラル
      3.1.4 浮動小数点数
      3.1.5 論理値型
      3.1.6 文字型
      3.1.7 文字列
     3.2 複合型
      3.2.1 タプル型
      3.2.2 配列型
     3.3 参照と借用
      3.3.1 所有権の移動
      3.3.2 借用
     3.4 束縛
      3.4.1 束縛と可変変数
      3.4.2 シャドーイング
     3.5 スコープ
      3.5.1 ブロック単位
      3.5.2 関数単位
      3.5.3 構造体単位
      3.5.4 クロージャ単位
    第4章 文字列
     4.1 文字
      4.1.1 文字を扱う
      4.1.2 特殊文字
      4.1.3 u8型へのキャスト
     4.2 文字列
      4.2.1 文字列の扱い
      4.2.2 アルファベットの操作
      4.2.3 日本語の扱い
      4.2.4 日本語を正しく扱う
     4.3 文字列スライス
      4.3.1 先頭を切り出すスライス
      4.3.2 途中の文字列を切り出すスライス
      4.3.3 最後までを切り出すスライス
      4.3.4 全体を切り出すスライス
    第5章 文と式と関数
     5.1 文と式
      5.1.1 文
      5.1.2 式
     5.2 演算子
      5.2.1 四則演算子
      5.2.2 代入演算子
      5.2.3 ビット演算子
      5.2.4 シフト演算子
      5.2.5 論理演算子
      5.2.6 単項演算子
     5.3 関数
      5.3.1 引数のない関数
      5.3.2 引数のある関数
      5.3.3 戻り値のある関数
      5.3.4 文字列を受け取る関数
      5.3.5 文字列を戻す関数
      5.3.6 ベクターを受け取る関数
      5.3.7 ベクターを戻す関数
      5.3.8 ベクターの中身を変更する関数
    第6章 制御文とパターンマッチ
     6.1 分岐
      6.1.1 条件にマッチしたときに実行
      6.1.2 条件にマッチしないときに実行
      6.1.3 複数のif文を重ねる
      6.1.4 if文に論理和/ 積を使う
      6.1.5 関数の戻り値を直接参照
      6.1.6 if文で値を返す
     6.2 繰り返し
      6.2.1 for文で全ての要素に繰り返す
      6.2.2 for文でイテレーターを利用する
      6.2.3 for文をインデックス付きで繰り返す
      6.2.4 for文で繰り返し数を指定する
      6.2.5 繰り返しを途中で止める
      6.2.6 繰り返しの途中で先頭に戻る
      6.2.7 while文で継続条件を指定する
      6.2.8 loop文で無限に繰り返す
     6.3 パターンマッチ
      6.3.1 enumで列挙型を定義する
      6.3.2 列挙型をmatchで使う
      6.3.3 オプション型をmatchで扱う
      6.3.4 matchを「if let」で置き換える
      6.3.5 enum以外でmatchを使う
    第7章 配列とベクター
     7.1 配列
      7.1.1 固定配列を定義
      7.1.2 文字列の配列を定義
      7.1.3 配列の型を指定する
      7.1.4 配列を初期化、変更する
      7.1.5 配列を数値型に強制キャストする
     7.2 ベクター
      7.2.1 ベクターを定義する
      7.2.2 ベクターの要素を増減させる
      7.2.3 ベクターの要素を参照する
      7.2.4 ベクターの要素を削除する
      7.2.5 指定位置に要素を追加する
      7.2.6 複数のベクターを連結する
      7.2.7 連結文字を指定してベクターを連結する
      7.2.8 分割文字を指定しベクターを作成する
      7.2.9  ベクターを辞書順にソートする
     7.3 イテレーター
      7.3.1 for文でイテレーターを使う
      7.3.2 iterメソッドとnextメソッドを使う
      7.3.3 loop文とwhile文でイテレーターを扱う
      7.3.4 イテレーターとmapを活用する
    第8章 構造体とメソッド
     8.1 構造体
      8.1.1 構造体の定義
      8.1.2 構造体のインスタンス化
      8.1.3 構造体のフィールドを参照
      8.1.4 構造体を引数にとる関数
      8.1.5 構造体を戻り値にする関数
      8.1.6 ベクターで構造体を扱う
      8.1.7 フィールド名のない構造体を扱う
      8.1.8 構造体のサイズを調べる
     8.2 メソッド
      8.2.1 引数のないメソッドを定義
      8.2.2 引数のあるメソッドを定義
      8.2.3 戻り値のあるメソッドを定義
      8.2.4 フィールドを変更するメソッド
      8.2.5 newメソッドを定義する
     8.3 Result型
      8.3.1 Result型の定義
      8.3.2 str::parseの戻り値を探る
      8.3.3 Result型を返す関数を作る
      8.3.4 Result型のエイリアスを作る
      8.3.5 コンピネーターでmatch文を減らす
      8.3.6 エラー委譲でmatch 文を減らす
      8.3.7 独自のResult 型を返す
      8.3.8 exceptメソッドを使う
      8.3.9 main関数でResult 型を返す
    第9章 ジェネリクスとトレイト
     9.1 ジェネリクス
      9.1.1  ベクターはジェネリクスである
      9.1.2 ジェネリックを使わないで関数を作る
      9.1.3 ジェネリックを使って関数を作る
     9.2 トレイト
      9.2.1 構造体の動作をルール化する
      9.2.2 メソッド名を統一する
      9.2.3 デフォルトメソッドを追加する
      9.2.4 既存の構造体を拡張する
    第10章 所有権
     10.1 所有権の概念
      10.1.1 所有権という概念
      10.1.2 構造体のインスタンスを借用する
      10.1.3 構造体のインスタンスを移動する
      10.1.4 変数を借用する
      10.1.5 変数を移動する
      10.1.6 可変変数を関数に参照で渡す
      10.1.7 可変変数を扱うときの注意
      10.1.8 数値とタプルの場合
      10.1.9 ベクターと文字列の場合
      10.1.10 複数の変数で所有権を奪い合う例
     10.2 所有権の利点
      10.2.1 有効範囲を明確にする
      10.2.2 関数でインスタンスを返す
      10.2.3 可変変数のアクセス制限
    第11章 パッケージの作成
     11.1 公開ライブラリを利用する
      11.1.1 crates.io
      11.1.2 randクレートのドキュメント
      11.1.3 randクレートを利用する
     11.2 公開バイナリを利用する
      11.2.1 バイナリのインストール
      11.2.2 バイナリの実行
     11.3 パッケージを作成する
      11.3.1 ライブラリのプロジェクトを作成
      11.3.2 ライブラリを動作させる
      11.3.3 ライブラリの出力場所
    第12章 ファイル入出力
     12.1 ファイル読み込み
      12.1.1 スコープの指定
      12.1.2 ファイルを全て読み込む
      12.1.3 ファイルの読み込みエラーに備える
      12.1.4 ファイルをオープンして読み込む
      12.1.5 ファイルアクセス時のResultをチェックする
      12.1.6 バイト単位で読み込む
      12.1.7 行単位で読み込む
      12.1.8 main関数でファイルを読み込む
     12.2 ファイル書き出し
      12.2.1 write!マクロで書き出す
      12.2.2 writeメソッドで書き出す
      12.2.3 バイト配列で書き出す
      12.2.4 バイト単位で書き出す
      12.2.5 main 関数でファイルに書き出す
     12.3 標準入出力の利用
      12.3.1 標準入力と標準出力
      12.3.2 標準入出力の準備
      12.3.3 ファイルから読み込み
      12.3.4 標準入力から読み込み
      12.3.5 標準出力へ書き出し
    第13章 マクロ
     13.1 println!マクロ
      13.1.1 関数とマクロの区別
      13.1.2 println!マクロのプレースホルダー
      13.1.3 複数のプレースホルダー
      13.1.4 整数の進数表現
      13.1.5 整数の0埋め
      13.1.6 実数の指数表現と有効桁数
      13.1.7 数値や文字列の配置指定
     13.2 dbg!マクロ
      13.2.1 配列の内容を表示する
      13.2.2 構造体にDebugトレイトを適用する
      13.2.3 dbg!マクロのフォーマッタを実装する
     13.3 panic!マクロ
      13.3.1 main 関数でpanic!マクロを使う
      13.3.2 panic!マクロの利用例
      13.3.3 panic!マクロのトレースの利用
    第14章 Web API呼び出し
     14.1 HTTPプロトコル
      14.1.1 reqwestクレート利用の準備
      14.1.2 URLアドレスの呼び出し
      14.1.3 URLクエリ文字列で呼び出し
      14.1.4 目的のページが見つからない場合
      14.1.5 指定したWebサーバーが見つからない場合
     14.2 GETとPOSTメソッド
      14.2.1 HTTPプロトコルのヘッダー部
      14.2.2 GETメソッドの詳細
      14.2.3 POSTメソッドの詳細
     14.3 JSON形式
      14.3.1 serde_jsonクレート利用の準備
      14.3.2 JSON型式データをテキストとして受信する
      14.3.3 JSON型式データから値を取り出す
    第15章 データベースアクセス
     15.1 SQLiteの読み込み
      15.1.1 データベースの使い方
      15.1.2 rusqliteクレートの準備
      15.1.3 インメモリデータベースの利用
      15.1.4 複数のSQL文を実行する
      15.1.5 設定する値をパラメーターで渡す
      15.1.6 SELECT文でデータを取得する
      15.1.7 SELECT文でデータをquery_mapで取得する
      15.1.8 SELECT文で検索条件を指定する
     15.2 データの保存
      15.2.1 データベースファイルを作成する
      15.2.2 テーブルを作成する
      15.2.3 データを挿入する
      15.2.4 データを検索する
     15.3 複雑なSQL
      15.3.1 サンプルとなるテーブル例
      15.3.2 chronoクレートの準備
      15.3.3 テーブルを結合して表示する
      15.3.4 データをソートして表示する
      15.3.5 データを集計して表示する
     15.4 ORMの利用
      15.4.1 dieselクレートの準備
      15.4.2 マッピングする構造体の定義
      15.4.3 ORMでデータを取得する
    第16章 C言語ライブラリの呼び出し
     16.1 既存のC言語ライブラリとの連携
      16.1.1 C言語ライブラリとの相互運用
      16.1.2 C言語ライブラリの準備
      16.1.3 C言語のソースコード
      16.1.4 C言語のコードをビルド
      16.1.5 C言語ライブラリの呼び出し
      16.1.6 ビルドして実行
     16.2 C 言語からRustの関数を呼び出す
      16.2.1 Rustライブラリの準備
      16.2.2 Rustライブラリのコード
      16.2.3 Rustを呼び出すC 言語のコード
      16.2.4 ビルドして実行
     16.3 既存ライブラリで文字列の受け渡し
      16.3.1 文字列を渡す関数の宣言
      16.3.2 NULL終端の文字列
      16.3.3 ビルドして実行
    第17章 クロージャ
     17.1 クロージャの利用
      17.1.1 イテレーター処理
      17.1.2 mapとクロージャ
      17.1.3 filterとクロージャ
      17.1.4 findとクロージャ
      17.1.5 maxとmin
      17.1.6 2 つの配列を合わせる
     17.2 クロージャの定義
      17.2.1 クロージャの引数
      17.2.2 クロージャの戻り値
      17.2.3 クロージャとmap
     17.3 クロージャの受け渡し
      17.3.1 数値とクロージャを受け取る関数
      17.3.2 ベクターとクロージャを受け取る関数
    第18章 並列化
     18.1 スレッドの活用
      18.1.1 プロセスとスレッドの違い
      18.1.2 単純なスレッドの実行
      18.1.3 スレッドの終了を待つ
      18.1.4 複数のスレッドの終了を待つ
      18.1.5 スレッド処理のクロージャを別定義する
      18.1.6 スレッド処理を関数定義する
     18.2 async/awaitの活用
      18.2.1 スレッドを順番に実行する
      18.2.2 async/awaitで順番に実行する
      18.2.3 tokio クレートを利用する
     18.3 スレッドと所有権
      18.3.1 スレッドプールの利用
      18.3.2 所有権の移動
      18.3.3 moveの利用
      18.3.4 moveした変数を変更する
    第19章 テストコード
     19.1 単体テスト
      19.1.1 テストプロジェクトを作る
      19.1.2 関数をテストする
      19.1.3 テストメソッドを増やす
      19.1.4 関数とテストメソッドを増やす
     19.2 テストコードの記述
      19.2.1 値を比較する
      19.2.2 値が異なる
      19.2.3 構造体を比較する
      19.2.4 真偽をチェックする
     19.3 テストコードの実行
      19.3.1 変数チェックの埋め込み
      19.3.2 テストコードの埋め込み
    付録A Rustのメモリ配置を調べる
     A.1 変数のポインタを扱う
     A.2 変数の移動(move)をポインタで確認する
     A.3 変数の借用(borrow)をポインタで確認する
     A.4 数値の変数はコピーされる
    付録B Rustの型を調べる
     B.1 コンパイルエラーを利用する
     B.2 std::any::type_name を利用する
     B.3 いろい
  • 内容紹介

     Rustは、Firefoxの開発元であるMozillaが支援するオープンソースのプログラミング言語です。2017年末に公開されたFirefox のレンダリングエンジンの記述に使用され、その実行速度を2倍にしたことで有名になりました。オブジェクト指向と関数型の言語特徴を持ち、JavaやC#のようにVM(Virtual Machine)上の動作ではないため、既存のC言語のライブラリを直接扱える利点を持っています。またRustは、CやC++で発生しうる不正メモリアクセスに関する問題を,ある程度回避できるように設計されています。
     Rustはまだ新しい言語なので、本書の前半は実務に必要な詳しい文法を解説しています。文法や具体例などは、簡単なRustのコードを動かして確認しながら説明を進めています。後半は、具体的な利用法(Web API呼び出し、データベースアクセスなど)を中心に説明し、すでに他の言語(C++やC#、Javaなど)で同様にプログラミングをしたことのある読者を対象としています。
  • 著者紹介(「BOOK著者紹介情報」より)(本データはこの書籍が刊行された当時に掲載されていたものです)

    増田 智明(マスダ トモアキ)
    Moonmile Solutions代表、株式会社h2ワークス技術顧問、システムガーディアン株式会社技術顧問。大学より30年間のプログラム歴を経て現在もプログラマ。仕事では情報システム開発、携帯電話開発、構造解析を長くこなし、C++/C#/VB/PHP/Scratchなどを扱う。最近はRaspberry Pi/Arduinoに手を広げ、ソフトウェア開発における設計工程とCCPMを考察中

プログラミング言語Rust入門―実行スピードとメモリの安全性を同時に満たすシステム開発言語 の商品スペック

商品仕様
出版社名:日経BP
著者名:増田 智明(著)
発行年月日:2020/03/30
ISBN-10:4822296857
ISBN-13:9784822296858
判型:B5
発売社名:日経BPマーケティング
対象:専門
発行形態:単行本
内容:情報科学
言語:日本語
ページ数:345ページ
縦:24cm
横:19cm
他の日経BP社の書籍を探す

    日経BP社 プログラミング言語Rust入門―実行スピードとメモリの安全性を同時に満たすシステム開発言語 [単行本] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!