基礎からわかるGo言語
C&R研究所
著者:古川昇
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」マップ
非推奨組み込み関数
索引