内容简介:打卡时间: 1:56
测试代码
- hello.go
package main import ( "net/http" "fmt" //"log" "os" "time" "sort" "log" "io/ioutil" "encoding/json" ) /** * 计数器 */ type Counter struct { n int } /** * 实现Handler接口中的ServeHTTP方法 */ func (c *Counter) ServeHTTP(w http.ResponseWriter, req *http.Request) { c.n++ fmt.Fprintf(w, "counter=%d\n", c.n) //请求返回的数据 } /** * json 结构体某字段的首字母为小写则不可导出 */ type Person struct { Name string Age int } func main() { /** * 简单的处理http请求 */ counter := new(Counter) http.Handle("/counter", counter) err := http.ListenAndServe(":9090", nil) if err != nil { log.Fatal("error...", err) } path := "tmp/tmp.txt" testFileIsExist(path) nums := []int{1, 10, 5, 4} c := make(chan int) /** * 测试管道和goroutine的结合使用 */ go func() { time.Sleep(time.Second * 5) sort.Ints(nums) fmt.Println("fuck you") c <- 1 }() fmt.Println(nums) printInfo() <-c //阻塞作用,直到有数据可读取 /** * json对象序列化 */ p := &Person{} p.Name = "jack" p.Age = 10 pdata, _ := json.Marshal(p) fmt.Println(string(pdata)) /** * json对象的反序列化 */ testUrl := "https://api.douban.com/v2/movie/top250?start=0&count=10" resp, err := http.Get(testUrl) Check(err) body := resp.Body defer body.Close() data, _ := ioutil.ReadAll(body) entity := DoubanEntity{} json.Unmarshal(data, &entity) fmt.Println(entity.Count) } type DoubanEntity struct { Count int Total int } func Check(err error) { if err!=nil { panic(err) } } func printInfo() { for i := 10; i < 100; i++ { fmt.Println("i=", i) } } /** *测试文件是否存在 */ func testFileIsExist(path string) { if _, err := os.Stat(path); os.IsNotExist(err) { fmt.Printf("%s does not exist\n", path) } else { fmt.Printf("%s is exist.\n", path) } }
总结
- 网络请求,json,文件操作
打卡时间: 1:56
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。