前言

numnumnumnumnumnum

技术点

在本文中将会使用到以下技术点:随机数、随机数种子、获取当前时间戳、两种读取终端输入方式等。

随机数

Gomath/randIntn(n int)0~n0n[0,n)

经过多次运行,我们发现产生的数并不是随机的,每次都一样。

随机数种子

Gorand.SeedseedNum

为了保证种子值的随机性,一般采用系统时间的毫秒值作为种子值,因为系统时间的毫秒值是一直变动的。

time.Now().UnixMilli()
time.Now().Unix()
time.Now().UnixMicro()
time.Now().UnixNano()

再次运行代码,可以发现每次运行的随机数都是不同的了。

接收用户输入

Reader

os.Stdin/dev/stdinos.StdinososNewFile
bufioIOReader

设置按行读取:

按行读取得到的结果是包含换行符的,要把换行符给截取去掉:

再把得到的字符串转换为数字:

Scanf

Scanfos.Stdin

完整代码

for

下面来看下完整的代码。

使用Reader

使用Scanf

来运行一下代码看下最终效果:

总结

Go
Scanfbufio

刚刚接触Go难免有些错误与不足之处,如有发现欢迎指出。