一 问题背景
最近的项目中,因为要处理随机的问题,所以使用到随机数。项目在测试的过程中,突然报错了:invalid argument to intn; 提示如下:
二 问题产生的原因
我这边使用的随机函数,是golang内置的包rand
,使用的方法是rand.Intn
,这个方法入参是一个非负数;然后返回值是[0,n)
之间的随机数;我这边在使用的时候,未对入参n
进行判断,在某些情况下,入参n
会变成0,所以才导致上述报错:invalid argument to intn
事实上,这个报错是随机函数的源码实现中的提示;当传入的参数小于等于0时,就会抛出这个提示;实例demo如下:
package main
import