golang

goコマンドで予約されている(特別な意味を表わしてる)インポートパス

go get -u all とか go get -u std って出来るの知った。めちゃくちゃ便利。 https://github.com/golang/go/blob/master/src/cmd/go/main.go $ go help packages (mainもっぽいけどそれに対しての何か実装はまだ見つけてない)

testing.Mが追加されテスト実行前後に何かを書けるようになった

commit cmd/go, testing: add TestMain support · 182d131 · golang/go · GitHub issue testing: allow tests to control main execution · Issue #8202 · golang/go · GitHub 例えば // main_test.go var exitCode = 0 func TestMain(m *testing.M) { defer…

testing.afterを自由にしたかった。テストの最後になんかしたかった。golang

追記 1.4から普通にできるようになった。 testing.Mが追加されテスト実行前後に何かを書けるようになった - コンドルが飛んでいる。 なにかと最後に掃除したりしたい例があった。 要は、application側が、 package main import ( "xxx.com/xxx/xxx/models" )…

$GOROOT/miscにはvim/emacs pluginだけじゃなく、便利なものが色々ある

例えば $ cat $(go env GOROOT)/misc/git/pre-commit #!/bin/sh # Copyright 2012 The Go Authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. # git gofmt pre-commit …

main packageが複数ファイルで構成される時のgo run

main.go package main func main() { some() } some.go package main import ( "fmt" ) func some() { fmt.Println("some") } というのがある時に、go run main.go ってやると動きそうな気がするんだけど、動かない。 Run compiles and runs the main packag…

$GOPATH内のリポジトリを楽に移動する

必要なもの ToQoz/ruby-anything こんな感じ $ cat ~/.zshrc | grep anything-gorepo alias gogo='cd $(anything-gorepo)' #!/usr/bin/env ruby # anything-gorepo unless ENV['GOPATH'] STDERR.puts '$GOPATH should not be empty' exit 1 end require 'rub…

gorpでSQL書いてレコード取得する時には必ず個別にカラムを指定したほうが良い話

SQLとして何が好ましいかという話はしないし関係ない。 SQL書いてSELECTするような場合、gorp.DbMap.Select とか gorp.DbMap.SelectOneとか。gorp.rawselectってのが呼ばれて、 そこでは、取得したカラムの全てがstructに無い場合エラーを吐くようになってる…

$GOROOT/src/race.bashとかのインデント

もハードタブだったの、どっちでも良いんだけど面白かった。Cとかも。 変な意味ではない。単純にgoでの標準はそうだから、goでのみハードタブにするし、go fmtで保証されるからどっち派とか関係なくハードタブで良いんだよ。みたいな感じだと思ってたけど、(…

homebrewで入れたgoの$GOROOT

$BREW_HOME/Cellar/go/1.1.1 でよかったんだけど、https://github.com/mxcl/homebrew/commit/743bf42e2e0a5f0fc217b114e88c24f84c1fed97 以降は $BREW_HOME/Cellar/go/1.1.2/libexec としてやらないといけなくなった。 なんだけど、このtweetをたまたま見て…

goで特定のエラーに対して別々にハンドリングする

エラーメッセージの比較 errorの比較 errorの型の比較 errorの比較がシンプルで好きだけど、それだけだと、動的にエラーメッセージ変えたい時とかに困る。 Demo: http://play.golang.org/p/F9qAcLoMhP

goで作ったコマンドのヘルプの出力を変える

Demo: http://play.golang.org/p/LRt0Ah6xD9