kakts-log

programming について調べたことを整理していきます

golang

Go: for rangeにおけるmapのイテレーション順序について

概要 Goにおけるfor rangeでmapをループさせる際のイテレーション順序について整理します。 Goにおいて、for rangeでmapの要素をループさせる際、イテレーションの順序は決まっていません。 これはGo言語の仕様で定められており、ループ順序を前提としたコー…

Goコンパイラによるコンパイル処理について整理

概要 Goのコンパイラにおいて、コンパイル時にいくつかのフェーズに分かれており、各フェーズについてざっと概要を整理します。 github.com Goコンパイラによるコンパイルでは、主に下記のようなフェーズをたどります。 - 字句解析 - 構文解析 - 型チェック …

os.Exit()とdeferされた関数について

概要 os.Exit()を実行した際、プログラムが即座に終了するため、defer された関数が呼ばれない。 これについて整理します。 os.Exit() ドキュメントを確認すると、defer された関数が呼ばれないことも明記されている Exit causes the current program to exi…

golang: failed to get golang.org/x/tools/cmd/oracle

preconditions golang: 1.6 failed to get golang.org/x/tools/cmd/oracle When I try to "go get golang.org/x/tools/cmd/oracle" in my golang project, it occures an error as wrote down below. go get golang.org/x/tools/cmd/oracle package golang.o…

Goのスライスについて

Goのスライスについて Go Slices: usage and internals - The Go Blog Go言語において固定長のサイズの配列とは別に、要素の追加に応じて自由にサイズを拡張できるスライスという型があります。 スライスのデータ構造 スライスのデータ構造としては、ソース…