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>
个人工具
名字空间

变换
操作
导航
工具箱