たった1日で基本が身に付く!シリーズたった1日で基本が身に付く!
Go言語 超入門

書籍の概要

この本の概要

本書は,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 プログラムの中身を見てみる

  • mainの意味
  • importの意味

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文

  • 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サーバーを動かすしくみ
  • 特定のページが呼ばれた場合
  • テンプレートをファイルから読み込む
  • フォームからの送信データを受け取る

著者プロフィール

清水美樹(しみずみき)

東北大学工学研究科博士後期課程修了(1992年)。同学助手(1996年まで)。専攻の「資源工学」は物理化学実験中心で、プログラミングは結婚退職後ほぼ独学。初めてのプログラミングを前にした当惑や苛立ちに深く共感。2004年「はじめてのNetBeans」以来、工学社「はじめて」本シリーズを多数執筆。プログラミング言語は広く浅く、読者が最初の壁を乗り越えるための手助けをライフワークとする。2019年から東京都在住。