スターティングGo言語
翔泳社
はじめに
序
本書サンプルコードのダウンロー ド
Chapter 1:開発環境
~Windows・OS X・LinuxへのGoのインストール
1.1 はじめに
1.2 公式ページ
1.3 Goのダウンロード
1.4 Windows環境への導入
MSIイ ンストーラーを使用する
ZIPフアイルからインストールする
環境変数の設定
1.5 OS X環境への導入
パッケージを使用する
1.6 Linux環境への導入
前提
インストール
環境変数の設定
1.7 SCMとの連携
1.8 開発環境について
gocode
GoClipse
Atom
Visual Studio Code
Emacs
Vim
Chapter 2:プログラムの構成と実行
~Goプログラムの書き方とビルド・実行・パッケージ作成
2.1 はじめに
2.2 テキストエディターとエンコーディング
2.3 go run
go run
パッケージ(package)
インポート(import)
エントリーポイント
2.4 プログラムのビルド
go build
Goの実行フアイル
2.5 パッケージと構成
プログラムの構造
プログラムのビルド
mainパッケージの分割
パッケージとディレクトリ
パッケージのテスト
テストの実行
mainパッケージのテスト
Chapter 3:言語の基本
~変数・型・演算子・関数・定数・スコープ・制御構文・ゴルーチン
3.1 コメント
行コメント
コメント
3.2 文
セミコロンとその省略
セミコロンの落とし穴
3.3 定義済み識別子
3.4 コード例の表記について
プログラム全体を含むコード例
一部を抽出したコード例
コード例におけるコメント表記
3.5 fmtパッケージ
fmt.Println
fmt.Printf
print、println
3.6 変数
はじめに
変数の定義
varと暗黙的な定義
変数定義の詳細
3.7 基本型
Goの基本型
論理値型
数値型
浮動小数点型
複素数型
rune型
文字列型
3.8 配列型
配列型の定義
要素数の省略
要素への代入
配列型の互換性
配列の拡張について
3.9 interface{}とnil
3.10 演算子
演算子の種類
算術演算子
比較演算子
論理演算子
数値の学項演算子
3.11 関数
関数定義の基本
関数の引数定義
戻り値のない関数
複数の戻り値
戻り値の破棄
関数とエラー処理
戻り値を表す変数
無名関数
3.12 定数
const
値の省略
定数値の式
定数の型
iota
識別子の命名規則
3.13 スコープ
パッケージのスコープ
ファイルのスコープ
関数のスコープ
3.14 制御構文
if
for
switch
goto
ラベル付き文
defer
panicとrecover
go
init
Chapter 4:参照型
~スライス・マップ・チャネル
4.1 参照型とは
4.2 組み込み関数make
4.3 スライス
要素への代入と参照
len
cap
スライスを生成するリテラル
簡易スライス式
append
copy
完全スライス式
スライスとfor
スライスと可変長引数
参照型としてのスライス
スライスの落とし穴
4.4 マップ
マップのリテラル
要素の参照
マップとfor
len
delete
要素数に最適化したmake
4.5 チャネル
チャネルの型
チャネルの生成と送受信
チャネルとゴルーチン
len
cap
close
ゴルーチンとcloseの実例 191/
チャネルとfor
select
Chapter 5:構造体とインターフェース
~ポインタ・構造体・メソッド・タグ・インターフェース
5.1 はじめに
5.2 ポインタ
ポインタの定義
アドレス演算子とデリファレンス
配列へのポインタ型
値としてのポインタ型
文字列型とポインタ
5.3 構造体
構造体とは
type
エイリアス型の互換性
構造体の定義
複合リテラル
フィールド定義の詳細
構造体を含む構造体
無名の構造体型
構造体とポインタ
new
メソッド
フィールドとメソッドの可視性
スライスと構造体
マップと構造体
タグ
5.4 インターフェース
インターフェースとは
代表的なインターフェースerror
インターフェースのメリット
fmt.Stringer
インターフェースが定義するメソッドの可視性
インターフェースを含むインターフェース
interface{}の本質
Chapter 6:Goのツール
~さまざまなGoコマンド
6.1 Goのツール群について
6.2 goコマンド
6.3 go version
6.4 go env
6.5 go fmt
ソースコードの整形
オプション
gofmt
6.6 go doc
パッケージのドキュメントを参照する
パッケージのドキュメント作成
オプション
6.7 go build
ファイルやパッケージを指定しないビルド
パッケージのビルド
ファイルを指定したビルド
オプション
6.8 go install
6.9 go get
拡張パッケージを利用する
オプション
6.10 go test
テストコードの例
カバレッジ率の計測
Goのパッケージのテスト
オプション
6.11 ベンダリング
ベンダリングの実例
Chapter 7:Goのパッケージ
~よく使われるパッケージとコーディング例
7.1 はじめに
7.2 os
プログラムの終了
log.Fatal
コマンドライン引数
ファイル操作
ディレク トリ操作
その他のファイル操作
ホスト名の取得
環境変数
プロセスの情報
7.3 time
現在の時刻を取得する
指定した時刻を生成する
時刻の間隔を表現する
時刻の差分を取得する
時刻を比較する
年月日を増減する
文字列から時刻を生成する
時刻から文字列を生成する
時刻をUTCに変換する
時刻を□一カルタイムに変換する
UNIX時間との相互変換
指定時間のスリープ
time.Tick
time.After
7.4 math
数学的な定数
数値型に関する定数
絶対値を求める
累乗を求める
平方根と立方根
最大値と最小値
小数点以下の切り捨てと切り上げ
その他の数学関数
無限大と非数
7.5 math/rand
現在の時刻をシードに使った擬似乱数の生成
擬似乱数生成器の生成
7.6 flag
コマンドラインオプションの処理
7.7 fmt
整数型の書式指定子
浮動小数点型・複素数型の書式指定子
文字列型の書式指定子
その他の書式指定子
%v
フォーマットを指定しない出力
7.8 log
ログの出力先を変更する
ログのフォーマットを指定する
ログ出力の詳細
ロガーの生成
7.9 strconv
真偽値を文字列に変換する
整数を文字列に変換する
浮動小数点数を文字列に変換する
文字列を真偽値型に変換する
文字列を整数型に変換する
文字列を浮動小数点型に変換する
7.10 unicode
Unicodeのカテゴリーを判別する
7.11 strings
文字列を結合する
文字列に含まれる部分文字列を検索する
文字列を繰り返して結合する
文字列の置換
文字列を分割する
大文字・小文字の変換
文字列から空白を取り除く
文字列からスペースで区切られたフィールドを取 り出す
7.12 io
入力のための基本インターフェース
出力のための基本インターフェース
7.13 bufio
標準入力を行単位で読み込む
文字列を行単位で読み込む
スキャナのスキャン方法を切り替える
入出力のバッファ処理
バッフアリングされた出力の注意点
7.14 ioutil
入力全体を読み込む
ファイル全体を読み込む
テンポラリファイルの作成
7.15 regexp
Goの正規表現の基本
正規表現のフラグ
幅を持たない正規表現のパターン
基本的な正規表現のパターン
繰り返しを表す正規表現のパターン
正規表現の文字クラス
Perl由来の定義済み文字クラス
Unicodeに対応した文字クラス
正規表現のグループ
正規表現にマッチした文字列の取得
正規表現による文字列の分割
正規表現による文字列の置換
正規表現のグループによるサブマッチ
正規表現のグループと置換処理
7.16 json
構造体型からJSONテキストヘの変換
JSONテキストから構造体への変換
7.17 net/url
URLをパースする
URLを生成する
7.18 net/http
GETメソッド
POSTメソッドによるフォームの送信
ファイルのアップロード
HTTPサーバー機能を利用する
7.19 sync
ミューテックスによる同期処理
ゴルーチンの終了を待ち受ける
7.20 crypto/*
MD5ハッシュ値を生成
SHA-1、SHA-256、SHA-512などのハッシュ値を生成
Appendix 標準ライブラリカタログ
Directory archive
Package bufio
Package builtin
Package bytes
Directory compress
Directory container
Package crypto
Directory database
Directory debug
Package encoding
Package errors
Package expvar
Package ftag
Package fmt
Directory go
Package hash
Package html
Package image
Directory index
Package io
Package log
Package math
Package mime
Package net
Package os
Package path
Package reflect
Package regexp
Package runtime
Package sort
Package strconv
Package strings
Package sync
Package syscall
Package testing
Directory text
Package time
Package unicode
Package unsafe
索引