go

パッケージ分割

go

gotourも3周してだいぶ分かって来たので色々気になっているところを調べる Go言語のpackageの作り方: 長くなったコードを別ファイルに切り出す方法 パッケージ hogeの指定を "./hoge"でなく "hoge"と指定すると、 $GOROOT/srcや $GOPATH/srcを見に行く仕様に…

gotour #71

go

A Tour of Goの 71番。まだ goroutineと仲良くなれない。とりあえず動いた版が以下の通りだが、FetchResultに urlが入っているのが冗長だったりと無駄が残っている。試行錯誤の過程ということでこれでgolangは 2周。リファレンスを引きながらコードを書ける…

メソッドレシーバの型指定

go

http://go-tour-jp.appspot.com/#50 にて type Vertex struct { X, Y float64 } func (v *Vertex) Abs() float64 { return math.Sqrt(v.X*v.X + v.Y*v.Y) } func main() { v := &Vertex{3, 4} fmt.Println(v.Abs()) v1 := Vertex{3, 4} fmt.Println(v1.Abs()…

need trailing comma before newline in composite literal

go

ケツなんて汚い言葉を使ってはいけないgo言語におけるtrailing comma(ケツカンマ)問題について | さにあらずこれはエラー m["Bell Labs"] = Vertex{ 40.68433, -74.39967 } 正しくはこう m["Bell Labs"] = Vertex{ 40.68433, -74.39967, } これもOK m["Bell …

sclicing

go

A Tour of Go をやっていて気づいたこと b := make([]int, 5, 5) c := b[:2] d := c[2:5] b[0] = 1 b[2] = 2 fmt.Println(c[0]) fmt.Println(d[0]) 実行結果 1 2sliceは参照。

Hello golang

go

なにか新しい言語に手を出して頭に刺激を、と思い Go言語のチュートリアルをやっている。変数の宣言が読みにくいこととメソッドの定義を型で行うのか型のポインタで行うのかといったあたりがまだ良くわかっていない A Tour of Go http://stormcat.hatenablog…