プログラミング言語Go
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
丸善出版
著者:アラン・ドノバン、ブライアン・カーニハン
訳者:柴田芳樹
日本語版によせて
まえがき
Goの起源
Goプロジェクト
この本の構成
より多くの情報を探すには
謝辞
第1章 チュートリアル1
1.1 ハロー、ワールド
1.2 コマンドライン引数
1.3 重複した行を見つける
1.4 GIFアニメーション
1.5 URLからの取得
1.6 URLからの並行な取得
1.7 ウェブサ ーバ
1.8 残りの項目
第2章 プログラム構造
2.1 名前
2.2 宣言
2.3 変数
2.4 代入
2.5 型宣言
2.6 パッケージとファイル
2.7 スコープ
第3章 基本データ型
3.1 整数
3.2 浮動小数点数
3 3 複素数
3 4 ブーリアン
3.5 関数宣言
3.6 再帰
第4章 コンポジット型
4.1 配列
4.2 スライス
4.3 マップ
4.4 構造体
4.5 JSON
4.6 テキストテンプレー トとHTMLテンプレート
第5章 関数
5.1 関数宣言
5.2 再帰
5.3 複数戻り値
5.4 エラー
5.5 関数値
5.6 無名関数
5 7 可変個引数関数
5.8 遅延関数呼び出し
5.9 パニック
5.10 リカバー
第6章 メソッド
6.1 メソッド宣言
6 2 ポインタレシーバを持つメソッド
6.3 構造体埋め込みによる型の合成
6.4 メソッド値とメソッド式
6.5 例:ビットベクタ型
6.6 カプセル化
第7章 インタフェース
7.1 契約としてのインタフェース
7.2 インタフェース型
7.3 インタフェースを満足する
7.4 flag.Valueによるフラグの解析
7.5 インタフェース値
7.6 sort.Interfaceでのソート
7.7 http.Handlerインタフェース
7.8 errorインタフェース
7.9 例:式評価器
7.10 型アサーション
7.11 型アサーションによるエラーの区別
7.12 インタフェース型アサーシヨンによる振る舞いの問い合わせ
7.13 型 switch
7.14 例:トークンに基づくXMLデコード
7.15 ちょっとした助言
第8章 ゴルーチンとチャネル
8.1 ゴルーチン
8.2 例:並行な時計サーバ
8.3 例:並行なエコーサーバ
8.4 チャネル
8.5 並列にループする
8.6 例:並行ウェブクローラ
8.7 selectでの多重化
8.8 例:並行なディレクトリ走査
8.9 キャンセル
8.10 例:チヤットサーバ
第9章 共有された変数による並行性
9.1 競合状態
9.2 相互排他:sync.Mutex
9.3 リード/ライトミューテックス:sync.RWMutex
9.4 メモリの同期
9.5 遅延初期化:sync.Once
9.6 競合検出器
9.7 例:並行的で待たされないキャッシュ
9.8 ゴルーチンとスレッド
第10章 パッケージとGoツール
10.1 導入
10.2 インポートパス
10.3 パッケージ宣言
10.4 インポート宣言
10.5 ブランクインポート
10.6 パッケージと命名
10.7 Goツール
第11章 テスト
11.1 go testツール
11.2 Test関数
11.3 カバレッジ
11.4 Benchmark関数
11.5 プロファイリング
11.6 Example関数
第12章 リフレクション
12.1 なぜリフレクションなのか
12.2 reflect.Typeとreflect.Value
12.3 Display:再帰的な値の表示
12.4 例:S式のエンコード
12.5 reflect.Valueでの変数の設定
12.6 例:S式のデコード
12.7 構造体のフイールドタグヘのアクセス
12.8 型のメソッドを表示する
12.9 注意書き
第13章 低レベルプログラミング
13.1 unsafe.Sizeof、Alignof、Offsetof
13.2 unsafe.Pointer
13.3 例:深い同値性
13.4 cgoを使ったCのコードの呼び出し
13.5 もう一つの注意書き
訳者あとがき
索引