magazine.gif 基礎からわかるGo言語

PROLOGUE
本書について

CHAPTER 01 Go言語による開発の概要

  • 001 Go言語とは
    • Go言語の概要
    • Go言語の特徴
  • 002 Go言語の開発環境の構築
    • 開発環境について
    • Go言語ツールのダウンロード
    • Microsoft Windowsへのインストール
    • Max OSへのインストール
    • LinuxまたはFreeBSDへのインストール
  • 003 開発環境の動作確認
    • 簡単なプログラミング
    • コンパイルと実行

CHAPTER 02 Go言語の基本

  • 004 基本的な文法について
    • ソースファイルの例
    • 「Hello.go」の解説
    • ソースコード内のコメント
    • 文末の「;」(セミコロン)は不要
  • 005 コンパイルと実行について
    • ソースファイルのコンパイル
    • コンパイルと実行を同時に行う
  • 006 キーワードについて
    • Go言語のキーワードの一覧
  • 007 基本的な型について
    • 基本的な型
    • 論理値型
    • 数値型
    • 文字列型
  • 008 型の宣言について
    • 型の宣言
  • 009 変換について
    • 型の変換
  • 010 演算子について
    • Go言語の演算子
    • 算術演算子
    • 比較演算子
    • 論理演算子
    • インクリメント文とデクリメント文
    • 演算子の優先順位
  • 011 代入について
    • 代入とは
    • ブランク識別について
  • 012 変数について
    • Go言語の変数の宣言
    • 「var」キーワードを使った基本的な変数の宣言
    • 変数の宣言と同時に初期値を与える
    • 変数の宣言時に型を省略する
    • 省略書式を使った変数の宣言
  • 013 リテラルについて
    • Go言語のリテラル
  • 014 定数について
    • 定数の宣言
  • 015 パッケージとインポート・エクスポートについて
    • パッケージ
    • エクスポート
    • インポート
  • 016 繰り返し処理について
    • 「for」文
    • C言語やJavaの「for」文に相当する書式
    • C言語やJavaの「while」文に相当する書式
    • 無限ループ
    • 「range」式を使用する書式
    • 「break」文
    • 「continue」文
  • 017 条件分岐について
    • 「if」文
    • 「switch」文
  • 018 ポインタについて
    • Go言語のポインタ
    • ポインタ渡しと値渡し
    • 「new」組み込み関数によるメモリの割り当て
  • 019 ゼロ値について
    • ゼロ値
  • 020 ラベルについて
    • ラベルとは
    • ラベルにbreakする
    • ラベルにcontinueする
    • 「goto」文

CHAPTER 03 関数とメソッド

  • 021 関数について
    • Go言語の関数
    • 関数の宣言
    • 多値を返す関数の宣言
    • 関数から返却された多値を直接、他の関数に渡す
    • 可変長パラメータ
    • 戻り値に名前を付ける
    • 関数リテラル
    • 関数型
  • 022 メソッドについて
    • Go言語のメソッド
    • メソッドの宣言
    • メソッドのレシーバをポインタにする
  • 023 関数の遅延実行について
    • 関数の遅延実行
    • 遅延実行はリソースの解法に便利

CHAPTER 04 構造体

  • 024 構造体について
    • 構造体とは
    • 構造体型の書式
    • 構造体型に名前を付ける
  • 025 特殊なフィールドについて
    • ブランクフィールド
    • 匿名フィールドと埋め込み
  • 026 構造体の初期化について
    • リテラルを使った構造体の初期化
    • 構造体リテラルにおkる埋め込み

CHAPTER 05 インタフェース

  • 027 インタフェースについて
    • Go言語のインタフェース
    • インタフェース型の書式
    • インタフェースは自動的に実装される
    • 空インタフェース
  • 028 インタフェースの埋め込みについて
    • インタフェースの埋め込み
  • 029 型の変換について
    • 型アサーション
    • 「型switch」文

CHAPTER 06 配列・スライス・マップ

  • 030 配列について
    • 配列とは
    • 配列型の書式
    • 配列の長さを取得する
    • 配列の要素へのアクセス
  • 031 配列の初期化
    • リテラルを使った配列の初期化
  • 032 スライスについて
    • スライスとは
    • スライス型の書式
    • スライス式
    • スライスは参照型
    • スライスのキャパシティ
    • 文字列のスライス
    • スライスへ要素を追加する
    • スライスの要素をコピーする
    • スライスを可変長パラメータに直接、受け渡す
  • 033 スライスの初期化
    • 配列とスライスを同時に作成する
    • リテラルによるスライスの初期化
  • 034 マップについて
    • マップとは
    • マップ型の書式
    • マップの長さを取得する
    • マップの作成
    • マップへの値の出し入れ
    • マップのキー存在確認
    • マップから要素を削除する
  • 035 マップの初期化
    • リテラルを使ったマップの初期化

CHAPTER 07 エラーハンドリング

  • 036 戻り値によるエラーハンドリングについて
    • 戻り値によるエラーハンドリング
    • 自作関数のエラー処理
  • 037 パニックとリカバリ
    • パニックとは
    • リカバリとは
  • 038 ランタイムパニックについて
    • ランタイムパニックとは

CHAPTER 08 並列処理

  • 039 ゴルーチンについて
    • ゴルーチンとは
    • 「go」文の書式
    • ゴルーチンの中断と再開
    • ゴルーチンを使用する上での注意点
  • 040 ゴルーチン間における通信
    • チャネルとは
    • チャネル型の書式
    • チャネルの作成
    • チャネルへの値の送受信
    • チャネルのキャパシティとバッファリングされている要素数を取得する
    • チャネルを利用した同期
    • セマフォの代用
    • 値の共用
  • 041 「select」文について
    • 「select」文とは
    • 「select」文の書式

CHAPTER 09 逆引きサンプル

  • 042 入出力
    • 値を文字列にフォーマットする
    • 標準出力に値を出力する
    • 標準エラー出力に値を出力する
    • 標準入力から値を読み込む
    • ファイルから入出力を行う
    • CSVファイルを出力する
    • CSVファイルを読み込む
  • 043 ファイルシステム
    • ディレクトリを作成する
    • ファイル/ディレクトリを削除する
    • カレントディレクトリを変更する
    • ファイル/ディレクトリの名前を変更する
    • テンポラリファイルを作成する
    • ディレクトリ内のファイル一覧を取得する
  • 044 データ処理
    • リストの作成と要素の追加を行う
    • リストの要素数を取得する
    • リストの要素の値を取得・変更する
    • 2つのリストを結合する
    • リストを空にする
    • ハッシュ値(SHA-1、MD5)を求める
    • BASE64エンコード/デコードを行う
    • URLエンコード/デコードを行う
    • 16進ダンプ出力を行う
    • 乱数を取得する
  • 045 日付・時刻
    • 現在時刻を取得する
    • 時刻を文字列にフォーマットする
    • 日時を指定して「Time」型の値を作成する
    • 「Time」型に時間を加算・減算する
    • 「Time」型に日付を加算・減算する
    • 曜日を取得する
    • 時間を指定してスリープする
    • 経過時間を算出する
    • UNIX時間を取得する
    • 一定時間ごとに処理を行う
  • 046 文字列
    • 文字列を比較する
    • 文字列を結合する
    • 文字列をトリムする
    • 部分文字列を取得する
    • 文字列を大文字・小文字にする
    • 文字列を分割する
    • 指定した文字列の位置を取得する
  • 047 文字列と数値の相互互換
    • 文字列を整数型に変換する
    • 文字列を浮動小数点型に変換する
    • 整数を文字列に変換する
    • 浮動小数点を文字列に変換する
  • 048 数学処理
    • 三角関数を使用する
    • 小数点以下の切り上げ/切り捨てを行う
    • 平方根を計算する
  • 049 ネットワーク
    • ホスト名からIPアドレスを取得する
    • TCP/IP通信を行う
    • HTTP通信を行う
    • HTTPnPOST通信を行う
    • Webサーバを作成する
  • 050 ログ出力
    • 標準エラー出力にログを出力する
    • ログをファイルに出力する
  • 051 その他
    • コマンドラインパラメータを取得する
    • プログラムを指定した終了コードで終了する
    • 外部プログラムを実行する

COLUMN

  • Go言語のマスコット
  • Eclipseを使った開発
  • Eclipseのエディタ上でオートコンプリート機能を使う
  • Go言語の公式サイトはGo言語で動いている
  • ソースコードの整形
  • 識別子に日本語を使用する
  • 独自パッケージを使用する
  • 「nil」について
  • 「init」関数
  • インタフェースの命名規則
  • コードからドキュメントを作成する
  • マップのキーとして使用できる値
  • 「nil」マップ
  • 非推奨組み込み関数

索引