项目地址:https://github.com/xinliangnote/Go
Go 入门的学习笔记,从零开始学 Go,做一个 Go 工程师。
package main import ( "encoding/json" "fmt" "time" ) type MobileInfo struct { Resultcode string `json:"resultcode"` Reason string `json:"reason"` Result struct { Province string `json:"province"` City string `json:"city"` Areacode string `json:"areacode"` Zip string `json:"zip"` Company string `json:"company"` Card string `json:"card"` } `json:"result"` } func main(){ // 变量 var a int =1 var c int a1:=1 fmt.Println(a,c,a1) // 数组 var ai [5] int var ai2 =[5] int {1,2,3,4,5} ai3:=[5][5] int{{1},{2},{3}} ai=ai2 ai=ai3[0] fmt.Println(ai,ai2,ai3) // 切片 slice var bi [] int var bi2 =[] int {1,2,3,4,5} bi3:=[] int{1,2,3} bi=append(bi,1,2,3,4,5) bi=bi2[1:3:5] bi=bi3[1:3:3] // 基于数组来得到切片 var list = [10]int{1, 2, 3, 4, 56, 7} slice3 := list[:5] // make方式得到切片 slice4 :=make([]int,5,5) fmt.Println(slice3,slice4) //[1 2 3 4 56] fmt.Println(bi,bi2,bi3) var as1 =Person{"aaa",16} as1.pp() // map res2 := make(map[string]interface{}) var res3 map[string]int =make(map[string]int) res2["aaa"]=as1 res3["bbb"]=2 fmt.Println(as1) fmt.Println(res2,res3) //循环 for i :=1;i<100;i++ { fmt.Println(i) } var i int =5 for{ i++ if(i>10){ break } fmt.Println(i) } switch(i){ case 1: fmt.Println(1,i) case 10: fmt.Println(10,i) case 11: fmt.Println(11,i) case 12: fmt.Println(12,i) default: fmt.Println(0) } switch(i){ case 1: fmt.Println(111,i) case 10: fmt.Println(1110,i) case 11: fmt.Println(1111,i) fallthrough case 12: fmt.Println(1112,i) fallthrough default: fmt.Println(110) } var ch chan string = make(chan string) time.Sleep(1*time.Second) go customer(ch) go producer(ch) time.Sleep(1*time.Second) fmt.Println("1231") close(ch) jsonStr := ` { "resultcode": "200", "reason": "Return Successd!", "result": { "province": "浙江", "city": "杭州", "areacode": "0571", "zip": "310000", "company": "中国移动", "card": "" } } ` var mobile MobileInfo err := json.Unmarshal([]byte(jsonStr), &mobile) if err != nil { fmt.Println(err.Error()) } fmt.Println(mobile.Resultcode) fmt.Println(mobile.Reason) fmt.Println(mobile.Result.City) b,error :=json.Marshal(mobile) if(error!=nil) { fmt.Printf("error %v",error) } fmt.Printf("%v",mobile) fmt.Printf("%v",string(b)) } func producer(ch chan string) { fmt.Println("producer start") ch <- "a" ch <- "b" ch <- "c" ch <- "d" fmt.Println("producer end") } func customer(ch chan string) { for { msg := <- ch fmt.Println(msg) } } type Person struct{ Name string age int } func (p Person) pp() { p.Name="1111" fmt.Println(p.Name,p.age) }
全部评论