How to multiply duration by integer?
Solution 1:
int32
and time.Duration
are different types. You need to convert the int32
to a time.Duration
:
time.Sleep(time.Duration(rand.Int31n(1000)) * time.Millisecond)
Solution 2:
You have to cast it to a correct format Playground.
yourTime := rand.Int31n(1000)
time.Sleep(time.Duration(yourTime) * time.Millisecond)
If you will check documentation for sleep, you see that it requires func Sleep(d Duration)
duration as a parameter. Your rand.Int31n returns int32
.
The line from the example works (time.Sleep(100 * time.Millisecond)
) because the compiler is smart enough to understand that here your constant 100 means a duration. But if you pass a variable, you should cast it.