概要
本書は,Go言語によるプログラミングを学ぶための入門書です。開発環境のインストールから始まり,Go言語の基本を解説しており,最初の1冊目として最適です。Go言語によるプログラムの作り方の基本から条件分岐や繰り返し,関数,構造体など文法を学習し,最後に入出力,画像処理,並列処理,Go言語によるWebサーバーなどを作成して基礎を固めていきます。
こんな方におすすめ
- Go言語を基本から学びたい人
- Go言語ではじめてのプログラミングを学ぶ人
目次
CHAPTER 1 Let's go ! Go言語
SECTION 01 プログラミングとGo言語
- プログラミングとは
- なぜいろいろなプログラミング言語があるのか
- 主なプログラミング言語
- Go言語の特徴
SECTION 02 Goプログラミングを実行できるようにする
- ホームページ上の実行環境
- Goコンパイラをインストールする
- Goプログラムを体験する
- Visual Studio Codeをインストールする
SECTION 03 プログラムの中身を見てみる
SECTION 04 プログラム実行に最低限必要なこと
- 別のソースファイルを書いてビルド・実行
- 変数の使用
- 式とその値
- 文
- その他の重要なこと
CHAPTER 2 よく使うデータ型
SECTION 01 数値でよく使うデータ型
- データ型とは
- データ型を自動判別する代入記法
- 自分自身の値に処理を加える
- 整数「int」と小数「float64」
SECTION 02 文字列型
- 文字列の基本
- 文字列の結合
- 数値を文字列に埋め込む
- エスケープ記号を用いた改行
SECTION 03 データの集合体
SECTION 04 ブール型
- ブール型の基本
- 等価演算子による式の値
- 比較演算子による式の値
- 論理演算子による式の値
CHAPTER 3 処理の流れを操る制御文
SECTION 01 繰り返す(for文)
- for文の基本
- 文字列の配列
- 2次元配列上での繰り返し
SECTION 02 もし...なら(if文)
- そうでなければ何もしない
- そうでなければ,別の処理をする
SECTION 03 switch文
SECTION 04 高度な制御文
- 論理積・論理和を用いたif文
- switch文の便利な使い方
CHAPTER 4 複雑な処理をまとめる関数
SECTION 01 プログラミングでいう「関数」
- 関数をなぜ使うのか
- 関数の定義方法
- 関数の呼び出し
SECTION 02 関数の値を用いる
- Printf関数のしくみ
- main関数の謎
- 別の関数を呼び出す
- 複数の戻り値を与える
SECTION 03 値としての関数
- 「関数の値」ではなく「関数が値」
- 関数を引数にとる関数
SECTION 04 クロージャという特殊な関数
- 関数を実行するたび加算される?
- 引数を取るクロージャ
- クロージャのどこがいいのか
CHAPTER 5 複雑なデータ構造を記述する構造体
SECTION 01 フィールドだけを持つ構造体 ── 犬の種類を書く
- プログラムの中で「犬」を記述してみよう
- 構造体のインスタンスのフィールド
- 構造体のインスタンスを引数にとる関数
- 構造体のインスタンスを戻り値とする関数
SECTION 02 構造体にメソッドを与える ── 犬を主人公にする
- メソッドを用いたプログラム
- 似て非なる構造体と同名のメソッド
- 引数をとるメソッド
SECTION 03 一歩進んだ構造体の使い方
- 構造体の初期化メソッド
- メソッドのチェインあるいはストリーム
- いろいろなメソッド
- メソッドのチェインをmain関数で作成
SECTION 04 インターフェイス
- インターフェイスとは
- より複雑な構造体とインターフェイス
CHAPTER 6 データを直接指し示すポインタ
SECTION 01 アドレスとポインタ
- 変数から変数へ値を渡す
- 値の保存場所を明らかにする
- アドレスを指して内容を呼び出す
- アドレスを指して内容を書き換える
SECTION 02 関数とポインタ
- クロージャの謎
- アドレスを引数に渡す関数
- 構造体のポインタと関数
SECTION 03 メソッドとポインタ
- 構造体にポインタを使いたい理由
- レシーバを構造体のポインタにする
SECTION 04 ポインタ使用上の注意
- レシーバを構造体のポインタにしない場合との違い
- メソッドのチェインとの使い分け
- 構造体のフィールドにポインタ表現を用いる
CHAPTER 7 Goプログラミングの注意事項
SECTION 01 値がない・値を定義しない
- nilとは
- フィールドの値を決めないとどうなるか
- 変数を宣言したままの場合
- 配列とスライスで要素を決めない場合
SECTION 02 基本的な型変換
- 整数を文字列に変換するには
- 小数を文字列に変換するには
- 整数と小数を相互に変換
- 変数の値のデータ型を確認する
SECTION 03 エラーの扱い
- 結果とエラーインスタンスをともに戻す関数
- Atoiが返すerror型インスタンス
- errorの正体は「インターフェイス」
SECTION 04 高度なデータ型
- 整数の細かいデータ型
- 複素数
- 文字列の解析
- mapとrange
CHAPTER 8 Go言語の魅力を体験するプログラム
SECTION 01 入出力
- キーボードからの入力
- ファイルからの入力
- ファイルへの出力
SECTION 02 画像を処理する
SECTION 03 並列処理
- goroutine(ゴルーチン)
- チャンネル
- 複数のチャンネルを使い分ける
SECTION 04 Go言語で書けるWebサーバー
- Webサーバープログラムに必要なパッケージ
- Go言語のWebサーバーを動かすしくみ
- 特定のページが呼ばれた場合
- テンプレートをファイルから読み込む
- フォームからの送信データを受け取る