这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天。
Go语言基础语法四:
1、字符串格式化:
Go语言中对于字符串的格式化:
%v 按照值的本来输出,可以打印任意类型的变量不需要区分数字或者字符串
%+v 在%v基础上,对结构体字段名和值进行展开,相比于%v详细
%#v 可以打印相比%+v更详细的结果
%T 输出Go语言格式的类型和值
%b 整型以二进制方式显示
%o 整型以八进制方式显示
%d 整型以十进制方式显示
%x 整型以十六进制方式显示
%X 整型以十六进制、字母大写方式显示
%U Unicode字符
%f 浮点数
%p 指针,十六进制方式显示
需要注意的是,对字符进行格式化使用fmt.Printf(...)函数,例如:
package main
import "fmt"
type lizi struct {
x, y int
}
func main() {
p := lizi{12, 34}
fmt.Printf("p=%v\n", p)
fmt.Printf("p=%+v\n", p)
fmt.Printf("p=%#v\n", p)
}
结果为:
p={12 34}
p={x:12 y:34}
p=main.lizi{x:12, y:34}
2、JSON处理:
对于一个已有的结构体,保证每个字段的第一个字母是大写(公开字段),结构体就可以使用JSON.marshaler去序列化,变成一个JSON的字符串,被序列化后的字符串能够使用JSON.unmarshaler去反序列化到一个空的变量里面。可以使用 json tag等语法来对输出的JSON结果里面的字段名进行修改。
3、时间处理:
Go语言中使用time.now()可以获取当前时间,使用time.Date()去构造一个带有时区的时间,可以使用.sub()执行两个时间的减法操作,得到一个时间段,可以使用.Unix()来获取时间戳,可以使用time.Format()将时间time格式化为字符串,也可以使用time.Parse()将日期字符串转化为时间。
4、数字解析:
字符串和数字之间进行转换需要使用strconv这样一个包,可以使用strconv.parseInt()或者strconv.parseFloat()来将数字字符串转化为数字,同时可以使用strconv.Atoi()来将十进制数字转化为字符串。如果输入是不合法的,那么上述函数将返回error。
5、进程信息:
在Go语言中使用os.args来得到程序执行的时候的指定的命令行参数,使用os.Getenv()或者os.LookupEnv()获取z指定键环境变量,使用os.Setenv()设置环境变量的值。
引用参考:
Go fmt.Sprintf 格式化字符串 | 菜鸟教程 (runoob.com)
总结
本文接上文,Go语言基础语法三。