はじめに
Go 言語について本を読んだり調べたことをまとめておきたいと思います。
- Go言語基礎 その1 Go言語入門
- Go言語基礎 その2 Go言語の開発環境と go コマンド
- Go言語基礎 その3 Go言語の基本構文1 (コメント, 型, 変数, 定数, 演算子)
- Go言語基礎 その4 Go言語の基本構文2 (関数, init, 制御構文)
- Go言語基礎 その5 Go言語の基本構文3 (配列, interface, slice, map, 型アサーション, Defined type, Type alias)
- Go言語基礎 その6 Go言語の基本構文4 (ポインタ, 構造体, メソッド, タグ, インターフェイス)
- Go言語基礎 その7 Go言語の基本構文5 (可視性, スコープ, goto, defer, panic, recover, goroutine, channel)
Go 言語とは
- 2009 年に公開された、Google が開発した新しいプログラミング言語
特徴
- シンプルな文法、強い型付け
- メモリ安全性が高い(GC を備えている)
- ゴルーチンやチャネルなどの並行プログラミングをサポート
- 豊富な標準ライブラリ
- コンパイル、実行が比較的高速
- 単独の実行ファイルのみで独立して動作する(シングルバイナリ)
- 開発環境とは異なる OS やアーキテクチャ向けのバイナリを生成できる(クロスコンパイル機能)
Go の領域
- Web アプリケーション (API, HTML サーバー)
- CLI ツール
- 組み込み、IoT 向け
他にもゲームやアプリなどいろいろ
はじめての Go 言語
Web 上で Go のコードを実行できる
Go Playground - The Go Programming Language から Web 上で下記のサンプルコードを実行できる
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
パッケージ (package)
package main
- Go では変数や関数といったプログラムのすべての要素は何らかのパッケージに属する Go 言語仕様
- そのため、必然的にプログラムはパッケージの宣言から始まる
- 1 つのファイルに記述できるのは単一のパッケージのみ
- Go のプログラムのエントリーポイントは
main
パッケージの中に定義されたmain
関数であると定められている Go 言語仕様 - パッケージには主に以下の 3 種類
- main パッケージ プログラム実行時に、一番最初に初期化され、
main
関数を呼び出す - 標準パッケージ
- サードパーティのパッケージ
- main パッケージ プログラム実行時に、一番最初に初期化され、
パッケージのインポート (import)
import "fmt"
- ファイル内のプログラムで使用するパッケージを import 宣言で指定する Go 言語仕様
- 特に必要なパッケージがなければ import 宣言は省略することも可能
- 不要なパッケージを import したままにするとコンパイルエラー (
imported and not used: "package_name"
) になる - 上記のサンプルでは標準パッケージの
fmt
パッケージ を import
コードに関して
func main() {
fmt.Println("Hello, 世界")
}
main
関数内でfmt
パッケージの fmt.Println 関数を呼び出している- fmt.Println 関数は標準出力に文字列を改行付きで出力
実行結果
Hello, 世界
Go 言語を学ぶには
- 公式チュートリアル A Tour of Go
- Effective Go
- Go Code Review Comments, 日本語版
- Go Wiki
- EbookFoundation/free-programming-books · GitHub
参考にした本
おわりに
こんな感じでざっくり Go 言語をまとめてみました。
次回は go
コマンドを復習したいと思います。