Golang QuickStart
来自Jack's Lab
(版本间的差异)
(→Basics) |
(→JSON) |
||
(未显示1个用户的3个中间版本) | |||
第26行: | 第26行: | ||
<source lang=bash> | <source lang=bash> | ||
− | $ cat hello.go | + | comcat@jackslab:/work/go$ cat hello.go |
package main | package main | ||
第35行: | 第35行: | ||
} | } | ||
− | $ go run hello.go | + | comcat@jackslab:/work/go$ go run hello.go |
Hello, World! | Hello, World! | ||
− | + | comcat@jackslab:/work/go$ | |
− | $ go build hello.go | + | comcat@jackslab:/work/go$ go build hello.go |
− | $ ./hello | + | comcat@jackslab:/work/go$ ./hello |
Hello, World! | Hello, World! | ||
</source> | </source> | ||
第62行: | 第62行: | ||
== 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 | ||
+ | </source> | ||
<br><br> | <br><br> |
2017年6月9日 (五) 09:23的最后版本
目录 |
[编辑] 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
[编辑] 8 Exceptions
[编辑] 9 Modules
[编辑] 10 Resource