go覚え書き
はじめに
go langを勉強する上でのチラ裏をまとめておく。
コロンイコール
A tour of Goで最初につまずいた謎の記号
:=
コロンイコール
実際のサンプルコードは
package main import "fmt" func swap(x, y) (string, string) { return y, x } func main() { a, b := swap("hello", "world") fmt.Println(a, b) }
これは宣言代入で呼ばれるもので関数内で変数を宣言せずに利用するためのもの。値も代入される。グローバルスコープの変数はvarの宣言が必須。上の例では下記のように変数に格納される。
a = "world" b = "hello" //swapされているので
short variables
上のセミコロンに関係して、関数内での宣言を省略することができる
package main import "fmt" func main() { var i, j int = 1, 2 k := 3 c, python, java := true, false, "no!" fmt.Println(i, j, k, c, python, java) }
この例での実行結果は下記になる
1 2 3 true false no! /* i = 1, j = 2, k =3 c = true, python = false, java = "no!" */
セミコロンイコールを利用したfor文
for文の初期化ステートメントも同様に:=
で省略できる
for i := 0; i < 10; i++ { sum += i }
fmtパッケージの書式
%v デフォルトフォーマットを適用した値 構造体を出力する際、+フラグ(%+v)を加えるとフィールド名が表示される %#v この値をGo言語の構文で表現する %T この値の型をGo言語の構文で表現する %q Go言語の構文に従いダブルクォート形式でエスケープ
なのでこのコードを動かすと
func main() { var i int var f float64 var b bool var s string fmt.Printf("%v %v %v %q\n", i, f, b, s) }
こうなる
0 0 false ""