テック-Go

A Tour of Go - Concurrency : 自分用リファレンスメモ

Goroutines Goroutinesは軽量なスレッド。goと記述するだけで別スレッドで処理が実装される。 go f(x, y, z) Channels channelを使用してgoroutine間でデータの送受信を行える。 channelの生成 ch := make(chan int) channelの送受信 ch <- v // v をチャネ…

A Tour of Go - Method and interfaces 自分用リファレンスメモ

Methods Goには、クラス( class )のしくみはないが、型にメソッド( method )を定義できる。 struct宣言したTyoeにメソッドを追加することでクラス定義と似た振る舞いを記述できる。 type Vertex struct { X, Y float64 } // Vertex型にメソッドを定義 func (…

A Tour of Go - More types : 自分用リファレンスメモ

Pointers ポインタ型の宣言 //宣言 var po *int &オペレータでポインタを引き出せる。 *オペレータでポインタの指す先の変数を示す。 i := 42 //宣言 & 初期化 p := &i fmt.Println(p) // 0x40e020 fmt.Println(*p) //42 //ポインタpを通してiへ値を代入する…

A Tour of Go - Flow control statements 自分用リファレンスメモ

For sum := 0 for i := 0; i < 10; i++ { sum += i } while的な記述 sum := 1 for sum < 1000 { sum += sum } If 括弧 ( ) は不要。 if x < 0 { fmt.Println(x) }else{ fmt.Println(x) } If with a short statement ifの評価前にステートメントを記述できる…

A Tour of Go - Packages, variables, and functions の自分用リファレンスメモ

A Tour of Go の自分用リファレンスメモ A Tour of Go Exported names 外部のパッケージから参照できるオブジェクトは先頭が大文字から始まる。 例) PrintlnとPi fmt.Println(math.Pi) Functions 関数の定義 func add(x int, y int) int { return x + y } ad…