[ 后端与 Go | 青训营笔记]

65 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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语言基础语法三。