如何在Ruby中创建随机数生成器?我知道有一些方法可以做到这一点,比如rand(0..9)
生成0到9的随机数,或者rand(0…9)
生成0到8的随机数。但是,如果我说rand(0.. *variable*)
生成一个从0到该变量值的随机数呢?
查看下面的代码以获得更清晰的示例:
假设我正在创建一个数字猜谜游戏
print “Enter a number: “
max_num = gets
max_num.to_i #converting it into an integer to print it out with strings
random_num = rand(0.. **max_num**)
max_num.to_i
不会将字符串更改为整数。字符串仍然是字符串。方法to_i
返回一个不是字符串的整数。
irb> s = "123"
irb> p s.to_i
123
irb> p s
"123"
您需要做的是将返回值分配给一个变量(即使是同一个变量也可以(并使用该变量,如
max_num = max_num.to_i
random_num = rand(0..max_num)
事实上,在Ruby中,尽管有很多方法可以改变接收器的内部状态(如Array#map!
和String#strip!
(,但没有一种方法可以更改接收器的类型。