5.19笔记

53 阅读2分钟
Golang中的字符串格式化
type point strucy{
    x, y int
}
func main() {
    s := "hello"
    n := 123
    p := pointg{1, 2}
    fmt.Println(s, n)//hello 123
    fmt.Println(p) //{1 2}
    //这是第一种常用的打印方法 直接打印出变量内容 且末尾换行
    
    fmt.Printf("s=%v\n", s)//s=hello
    fmt.Printf("n=%v\n", n)//n=123
    fmt.Printf("p=%v\n", s)//p={1 2}
    fmt.Printf("p=%v+\n", p)//p={x:1 y:2} //打印的信息更详细
    fmt.Printf("p=%+#v\n", p)//p=main.point{x:1, y:2}
    
    f:= 3.141592653
    fmt.Println(f) //3.141592653
    fmt.Println("%2f\n", f) //3.14 取两位小数
}
Golang中JSON处理
package main
​
import {
    "emcoding/json"
    "fmt"
}
​
type unserInfo struct {
    Name string
    Age int `json: "age"`//在这里加json使得输出时Age大写变小写age 
    Hobby []string
}
​
func main() {
    a := userInfo{Name: "wang", Age: 18, Hobby:         []string{"Goalng", "Typestript"}}
    buf, err := json.Marshal(a)
    if err != ni; {
        panic(err)
    }
    fmt.Println(buf) //[123 34 78 997]
    //序列化之后如果不类型转换则会打印出来16进制的编码
    fmt.Println(string(buf))//{"Name": "wang", "Age": 18, "Hobby":["Goalng", "Typescript"]}    
    
}   
Golang中的时间处理
now := time.Now() //获取当前时间
​
fmt.Println(now) //2022-03-27 18:04:59.433297 +0800 CST m+=0.000087933
t := time.Date(2022,3,27,1,25,36,0,time.UTC)
t2 := time.Date(2022,3,27,2,30,36,0,.time.UTC)
​
fmt.Priontln(t)//2022-03-27 01:25:36 +0000 UTC
​
fmt.Println(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute())//2022 March 27 1 25  
​
fmt.Printin(t.Format("2006-01-02 15:04:05"))// 2022-03-27 01:25:36
​
diff := t2.Sub(t) //二者时间差
​
fmt.PrintIn(diff) //1h5m0s 转换为小时
​
fmt.Println(diff.Minutes( ),diff.Seconds( )) // 65 3900 转换为分钟和秒
​
fmt.Println(now.Unix())//10407300 获取时间戳
Golang中的数字解析
​
要引入 strconv 这个库
​
//用ParseFloat ParseInt解析字符串
f,_ := strconv.ParseFloat("1.234"64) //返回一个64位精度的浮点数
fmt.PrintIn(f) // 1.234
n,_ := strconv.ParseInt("111"1064) // 目标字符串 返回进制 返回数精度值
fmt.Printin(n) // I11
​
n,_ = strconv.ParseInt("0x1000"064) //转为64位精度的整数
fmt.Println(n) // 4096
n2 _ := strconv.Atoi("123")  //快速的把十进制数字字符串转为数字
fmt.PrintIn(n2) // 123
n2,err := strconv.Atoi("AAA")
fmt,Println(n2,err) // 0 strconv.Atoi: parsing "AAA": invalid syntax  err回调函数报错: 字符串不是数字字符串
Golang中的进程查询
package main
import {
    "fmt!"
    "os"
    "exec"
}
func main() {
    // go run example/20-env/main.go a b c d
    fmt.Println(os.Args )
    //[/var/folders/8p/n34xxfnx38dg8bv_x8162t_m0000gn/T/go-     build3406981276/b001/exe/main a b cd]
    fmt.Println(os.Getenv("PATH")) // /usr/local/go/bin...
    fmt.Println( os .Setenv("AA""BB"))
buf,err := exec.Command("grep","127.0.0.1","/etc/hosts").CombinedOutput()
    if err != nil {
        panic(err)
    }
fmt.Printin(string(buf)) // 127.0.0.1  localhost
    }