golang第四天

栏目: Go · 发布时间: 7年前

内容简介:打卡时间: 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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Eloquent JavaScript

Eloquent JavaScript

Marijn Haverbeke / No Starch Press / 2011-2-3 / USD 29.95

Eloquent JavaScript is a guide to JavaScript that focuses on good programming techniques rather than offering a mish-mash of cut-and-paste effects. The author teaches you how to leverage JavaScript's......一起来看看 《Eloquent JavaScript》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具