后端学习 | 青训营笔记

72 阅读2分钟

这是我参与第「第五届青训营 」伴学笔记活动的第二天。


今天继续上次的基础部分整理

时间处理

常用操作:
    * time.Now()获取当前时间
    * time.Sub(t)获取时间差
    * now.Unix()获取时间戳

还有许多常见的操作,如字符串与数字类型的转换、错误信息的处理等,具体需要使用的时候在逐渐掌握。


实战部分

猜谜游戏

猜谜游戏是很简单的一个逻辑,主要是练习一下一些GO的基本操作。 首先是随机数的生成,math/rand包里的rand.Intn(x)用于生成最大值为x的随机自然数。 由于此随机数在每次都是一样的,需要通过改变随机数种子来真正实现随机。rand.Seed(time.Now().UnixNano())

reader:=bufio.NewReader(os.Stdin)//使用os.Stdin 来读取输入,Newreader将输入转化成一个可以逐字节读取的流,
input,err:=reader.ReadString('\n')//实现逐行读取
input=strings.TrimSuffix(input,"\n")//删去多读的换行符号
guess,err:=strnov.Atoi(input)//将得到的字符串转化成数字,方便后期转化
   //上述所有的操作可以用 fmt.Scanf("%d",&guess)来代替,不过第一种方法联系到了许多常见的操作。

最后可以把整个游戏放到一个循环中,设置一个count变量代表进行的游戏次数,当游戏次数超过count时显示游戏失败,直接break。

在线词典

在线词典这个给的接口比较简单,然而其他的翻译网站要么是使用密文传输结果,要么是返回的参数不好找,而且在大串的json转换结构体是出现了类型不匹配的问题。

主要学会使用几个工具,curlconverter 生成请求header。 使用结构体marshal成json数据格式。 oktools将json生成结构体,用于接收返回的数据。找到对应返回值,选择合适的输出形式。

socks5代理

未完待续...