课程笔记-走进GO语言基础语法-3 | 青训营笔记

106 阅读2分钟

这是我参与「青训营 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。