golang第四天

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

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


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

查看所有标签

猜你喜欢:

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

代码整洁之道

代码整洁之道

[美]Robert C. Martin / 韩磊 / 人民邮电出版社 / 2010-1-1 / 59.00元

软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。 本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵......一起来看看 《代码整洁之道》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具