这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
字符串格式化
- 可以使用
%v格式化打印任意类型数据,格式化打印结构体时,只会打印值 - 使用
%+v格式化打印结构体时,会将结构体的变量名也打印出来 - 使用
%#v格式化打印结构体时,会将结构体名称和结构体变量名都打印出来
json处理
go内置的encoding/json组件库提供了json处理能力
json.Marshal方法可以将类型转换成json字符串
json.UnMarshal方法可以将json字符串转换成对应结构体
type UserInfo struct {
Name string
Age int `json:"age"`
Hobby []string
}
func main() {
a := UserInfo{Name: "wang", Age: 18, Hobby: []string{"Golang", "TypeScript"}}
buf, err := json.Marshal(a)
if err != nil {
panic(err)
}
fmt.Println(buf) // 打印出来的是字节序列
fmt.Println(string(buf)) // 打印出字符串
var b UserInfo
err = json.UnMarshal(buf, &b)
if err != nil {
panic(err)
}
fmt.Printf("%#v\n", b)
}
时间处理
import (
"time"
"fmt"
)
func main() {
now := time.Now()
//2023-01-16 17:20:41.093941705 +0800 CST m=+0.000076417
fmt.Println(now)
t := time.Data(2022, 3, 27, 1, 25, 36, 0, time.UTC)
t2 := time.Data(2022, 3, 27, 2, 30, 36, 0, time.UTC)
fmt.Println(t)
fmt.Println(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute())
fmt.Println(t.Format("2006-01-02 15:11:11"))
diff := t2.Sub(t)
fmt.Println(diff.Minutes(), diff.Seconds())
t3, err := time.Parse("2006-05-21 14:12:12", "2023-01-16 17:20:41")
if err != nil {
panic(err)
}
fmt.Println(t == t3) // true
fmt.Println(now.Unix())
}
time.Now()最常用的时间处理,用于获取当前时间
可以通过Year、Month、Day、Hour、Minute方法来获取当前时间对象的年月日等值
可以通过Format方法将时间对象通过设定的格式输出
可以通过Sub方法获得两个时间点的时间差
可以通过Unix方法获取时间戳(即毫秒数)
实用工具
快速生成发送请求的go代码
工具网址: curlconverter.com/#go
在网页检查页面,右键点击想要请求的网络请求项,然后点击复制,再点击复制为cURL(bash)
快速将json转换成go结构体
工具链接: oktools.net/json2go
只要将json串复制进去,就可以生成与其相对应的结构体