GO基础语法
JSON处理
json是一种比XML更轻量级的数据交换格式,在易于人们阅读和编写的同时,也易于程序解析和生成。
头文件需要加上"encoding/json"
定义: 保证结构体每个字段的第一个字母为大写,就可以用json.Marshal()来序列化处理
type user struct {
Name string
Age int
Hobby []string
}
func main() {
a := user{Name: "ma", Age: 19, Hobby: []string{"Apex", "Csgo"}}
buf, err := json.Marshal(a) //json处理
// 检查编码是否成功
if err != nil {
panic(err)
}
fmt.Println(buf) // 输出一堆数字(16进制的编码)
fmt.Println(string(buf)) //输出的是字符串
}
序列化后的字符串也可以使用json.Unmarshal()来反序列化到一个空的变量中
var b user
err = json.Unmarshal(buf,&b)
如果需要输出小写的字符串则需要添加json的tag
如定义时Age int 'json:"age"'
时间处理
头文件需要加上"time"
定义:
now := time.Now()
t := time.Date(2022, 11, 24, 1, 23, 20, 0, time.UTC)
可以使用函数获取单独的年月日,时分秒,如t.Year(),t.Month(),t.Day()等等
可以格式化时间t.Format("2006-01-02 15:04:05")
可以使用Sub函数来获取两个时间差 dif := t2.Sub(t)
使用now.Unix()来获取时间戳(Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒)
数字解析
字符串和数字之间的转换
strconv.Parsefloat("1.234",64) 把一个字符串解析为浮点数
strconv.ParseInt("111",0,64) 第一个数为要转换的字符串,第二个数为进制(如果为0则是自动判断进制),第三个数表示64位精度的整数
strconv.Atoi("123")快速转为10进制整数
进程信息
os.Args 获取运行时的命令行参数
可以使用os.Getenv()来获取环境变量,用os.Setenv()来设置环境变量
总结
现在终于把go语言的基础语法知识整理完了,总体上来说还是比较好接受的,就最后这一点知识点比较难理解,前面的都还好。后面就要开始做实战学习的笔记了,还有两篇实践笔记要写,争取拿到结营证书吧,大项目做起来还是很有难度的,打算就写笔记了。还是需要上手实践操作一下才能更好的理解go语言