golang第四天

陌生人的头像 · · 1247 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

测试代码

  • 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


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:陌生人的头像

查看原文:golang第四天

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1247 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传