Golang - acehippo/slowmotion GitHub Wiki

go-ide

$ docker run --rm -it --name go-ide -v "$PWD":/go/src/app -w /go/src/app saturnism/go-ide

command

  • go get, install, build

build

  • using docker
$ docker run --rm -v "$PWD":/usr/src/MyApp -v "$GOPATH":/go -w /usr/src/MyApp golang:1.5 \
  bash -c "go get; go build -v"
$ docker run --rm -v "$PWD":/usr/src/MyApp -v "$GOPATH":/go -w /go/src/MyApp golang:1.6 \
  bash -c "go get; go build -v \
  -ldflags \"-X main.timestamp=`date '+%Y-%m-%d_%H:%M:%S_%Z'` -X main.commit=`git rev-parse HEAD`\""

library - http://awesome-go.com

tips

  • date
t := time.Now()
utc, err := time.LoadLocation("GMT") 
now := t.In(utc).Format("Wed, _2 Jul 2006 15:04:05 GMT")
  • url
url := "https://211.43.177.30"
resource := "/login"

urls, _ := url.Parse(url)
urls.Path += resource

parameters := url.Values{}
parameters.Add("a", "test")
urls.RawQuery = parameters.Encode()

urlStr := urls.String()
fmt.Println(urlStr)
  • json
data, _ := json.Marshal(c)
var out bytes.Buffer
json.Indent(&out, data, "", "  ")

fmt.Println(out.String())
  • http
func WriteJson(w http.ResponseWriter, code int, v interface{}) error {
    w.Header().Set("Content-Type", "application/json")
    w.WriteHeader(code)
    return json.NewEncoder(w).Encode(v)
}