标准库:fmt | time | flag
一、fmt

向外输出:
1.printf : 格式化输出
2.Fprint : 将内容输出到io.writer接口类型的变量w中
例子:fmt.Fprintln(os.Student,"向标准输出内容写入内容")
fmt.FprintF(file,"wuhu:%s",name)
3.Sprint :把传入的数据生成并返回一个字符串
例子: s1 := fmt.Sprint("sdf")
4.Errorf : 生成格式化字符串并返回一个包含该字符串的错误
例子:err := fmt.Errorf("这是一个错误")
格式化占位符
通用占位符:
%v 默认输出
%+v 默认输出 但是输出结构体时会添加字段名
%#v 值为go语法表示
%T 打印值类型
%t 布尔类型
%a.xf 可以精确到x小数,a是宽度
%s 输出字符串| []byte
获取输入:
fmt.Scan fmt.Scanf fmt.Scanln 获取用户的输入
例子:fmt.Scan(&name,&age) 返回成功扫描的数据个数和遇到的任何问题
fmt.Scanln 遇到回车扫描结束
fmt.Scanf 只有按照格式输入才能扫描并存入
fmt.Scan 可以简单的空格作为数据分隔符
bufio.NewReader 完整获取输入的内容
strings.TrimSpace(s string)返回一个字符串类型的slice,将字符串前后空格去掉。中间的空格不会被去掉
Fscan : fscan fscanln fscanf 从io.Reader 中读取数据
Sscan : Sscan Sscanln Sscanf 从指定的字符串中读取数据
二、time

时间类型
now := time.Now() 获得当前时间
year ;= now.Year()
month := now.Month()
...
Location和time zone`
time.FixedZone 和 time.LoadLocation 获取location信息
FixedZone 返回时钟使用给定区域名称和偏移量
LoadLocation 加载一个位置得到对应的时区
时间间隔
time.Duration 代表
时间操作 Add
例子:now := time.New() later := now.Add(time.Hour) 加一个小时
Sub 求出两个时间之间的差值
Equal 判断那两个时间是否相同 ,考虑时区影响
Before func (t Time) Before(u Time) bool t在u前为true
After func (t Time) After(u Time) bool t在u后为true
定时器
time.Tick(时间间隔)
例子: ticker := time.Tick(time.Second) 定义一个1s间隔定时器
时间格式化
time.Format 讲一个时间对象格式化输出为指定布局的文本表示形式
时间格式化:2006-01-02 15:04:05.000 速记2006 1 2 3 4 5
通过添加PM可以将时间格式化为12h
解析字符串格式的时间
time.Parse | time.ParseInLocation
time.Parse 在解析式不需要额外指定时区信息
time.ParseInLocation 在在解析时额外指定时区信息
三、flag

flag参数类型
定义定义行flag参数
flag.Type(flag名,默认值。帮助信息)
例子:flag.String("name","张三","姓名")
flag.Int("age",18,"年龄")
flag.TYpeVar(Tyep指针,flag名,默认值,帮助信息)
flag.Parse() 对命令参数进行解释
flag.Args() 返回命令行参数后的其他参数
flag.NArg() 返回命令行参数后的其他参数个数
flag.NFlag() 返回使用使用的命令行参数个数