kakts-log

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

go言語

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

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

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

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

Go deferについて

Goには、deferステートメントというものがあり、deferへ渡した関数実行を、その呼び出し元の関数の終了時(return)まで遅延させることができます。 package main import "fmt" func main() { // main関数の最後に実行される defer fmt.Println("world.") fmt.…