这是我参与「青训营 x 字节后端训练营」笔记创作活动的第3天。这是我在《走进GO语言基础》课程的第3篇笔记。
大佬请退出阅读
(续前篇)
2. Go入门
2.1 基础语法
- 时间处理:
package main
import {
"fmt"
"time"
}
func main(){
now := time.Now()
fmt.Println(now) // 2022-03-27 18:04:59.433297 +0800 CST m=+0.000087933
t := time.Date(2022,3,27,1,25,36,0,time.UTC)
t2 := time.Date(2022,3,27,2,30,36,0,time.UTC)
fmt.Println(t) // 2022-03-27 01:25:36 +0000 UTC
fmt.Println(t.Year(),t.Month(),t.Day(),t.Hour(),t.Minute())
// 2022 March 27 1 25
fmt.Println(t.Format("2006-01-02 15:04:05"))
// 2022-03-27 01:25:36
diff := t2.Sub(t)
fmt.Println(diff) // 1h5m0s
fmt.Println(diff.Minutes(),diff.Seconds()) //65 3900
}
- 字符串和数字之间的转换:strconv(strint convert的缩写),以下函数都有双返回值——第二个是错误情况;第1个:ParseFloat函数,可以将浮点数字符串转换为浮点数,有两个参数:字符串、浮点数精度(例如,64代表64位精度的浮点数);第2个:ParseInt函数,类似的,它可以将整数字符串转换为整数,但不同的是它在ParseFloat的两个参数之间还有一个表示字符串中的整数是几进制的参数(传0则程序会自动推测),例如"0x1000"在识别为8进制后会转换为4096(十进制)输出;第3个:Atoi,可以将十进制字符串转换为数字——itoA是对偶函数。
3. 实战
3.1 猜数字游戏
- 生成随机数:注意,为了生成不同的随机数,需要用到"math/rand"(程序中称为rand)、"time"包:用rand.Seed来初始化随机数,其中参数可以是时间戳time.Now().UnixNano()。
- bufio:获取输入的方法之一(scanf也可以,但这个包后面会用到)。
- 注意:循环可以用for,循环体中则需要灵活运用break和continue。