前言
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难免有些错误与不足之处,如有发现欢迎指出。