Golang QuickStart
来自Jack's Lab
(版本间的差异)
(→Hello) |
(→Data Structures) |
||
第63行: | 第63行: | ||
== Data Structures == | == Data Structures == | ||
+ | === JSON === | ||
+ | |||
+ | <source lang=bash> | ||
+ | comcat@jackslab:/work/go$ cat post.go | ||
+ | package main | ||
+ | |||
+ | import ( | ||
+ | "fmt" | ||
+ | "strings" | ||
+ | "net/http" | ||
+ | "encoding/json" | ||
+ | ) | ||
+ | |||
+ | var url string = "http://api.noduino.org/user/token" | ||
+ | |||
+ | type Body struct { | ||
+ | UID string `json:"user_id"` | ||
+ | } | ||
+ | |||
+ | var body = Body { | ||
+ | UID: "YOUR_WECHAT_OPENID", | ||
+ | } | ||
+ | |||
+ | func main() { | ||
+ | |||
+ | data, err := json.Marshal(body) | ||
+ | |||
+ | if err == nil { | ||
+ | resp, err := http.Post(url, "application/json", strings.NewReader(string(data))) | ||
+ | if err != nil { | ||
+ | fmt.Println(err) | ||
+ | } | ||
+ | |||
+ | dec := json.NewDecoder(resp.Body) | ||
+ | var v map[string]interface{} | ||
+ | if err := dec.Decode(&v); err != nil { | ||
+ | fmt.Printf("error: %v\n", err) | ||
+ | } else { | ||
+ | fmt.Println(v["user_token"]) | ||
+ | } | ||
+ | |||
+ | resp.Body.Close() | ||
+ | } | ||
+ | } | ||
+ | comcat@jackslab:/work/go$ go run post.go | ||
+ | 203c57f69b22c0e9fe2a685e4819c231 | ||
<br><br> | <br><br> | ||
2017年6月9日 (五) 09:22的版本
目录 |
1 Prepare
Install the Go lang:
$ sudo apt-get install golang-go
Install a library:
$ sudo apt-get install golang-eclipse-paho-dev $ export GOPATH=/usr/share/gocode
Refer to:
2 Hello
comcat@jackslab:/work/go$ cat hello.go package main import "fmt" func main() { fmt.Println("Hello, World!") } comcat@jackslab:/work/go$ go run hello.go Hello, World! comcat@jackslab:/work/go$ comcat@jackslab:/work/go$ go build hello.go comcat@jackslab:/work/go$ ./hello Hello, World!
3 Basics
4 Operators
5 Control Flow
6 Functions
7 Data Structures
7.1 JSON
comcat@jackslab:/work/go$ cat post.go package main import ( "fmt" "strings" "net/http" "encoding/json" ) var url string = "http://api.noduino.org/user/token" type Body struct { UID string `json:"user_id"` } var body = Body { UID: "YOUR_WECHAT_OPENID", } func main() { data, err := json.Marshal(body) if err == nil { resp, err := http.Post(url, "application/json", strings.NewReader(string(data))) if err != nil { fmt.Println(err) } dec := json.NewDecoder(resp.Body) var v map[string]interface{} if err := dec.Decode(&v); err != nil { fmt.Printf("error: %v\n", err) } else { fmt.Println(v["user_token"]) } resp.Body.Close() } } comcat@jackslab:/work/go$ go run post.go 203c57f69b22c0e9fe2a685e4819c231 <br><br> == Exceptions == <br><br> == Modules == <br><br> == Resource == * https://blog.golang.org/json-and-go <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br>