这是我参与第「第五届青训营 」伴学笔记活动的第二天。
今天继续上次的基础部分整理
时间处理
常用操作:
* 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代理
未完待续...