我正在阅读 Chris Pine 的《学习编程》一书。在第 7.5 节“要尝试的一些事情”中,他让你编写一个程序,让你和一个听力不好的奶奶交谈。当你对她大喊大叫时,她应该回答“NO,NOT SINCE [1930 年到 1950 年之间]”。
在提示中,Pine 写道,“提示 3:人们经常问我,“我怎样才能让 rand 给我一个不从零开始的范围内的数字?” 好吧,你不能;rand 就是不能那样工作。所以,我想你必须对 rand 返回给你的数字做点什么。”
在他前面关于 rand Pine 的部分中,写过使用 rand 作为 rand(x) 来设置上限。但是从我使用的其他一些资源(不记得它是什么)中,我学会了做看起来像(x..y)的范围。所以在我的代码中,我只写了以下内容:
...
elsif whatusay == whatusay.upcase
puts "NO, NOT SINCE " + rand(1930..1951).to_s + "!"
在我的测试中,这似乎可以很好地生成 1930 到 1950 之间的随机数。那么提示是什么?我错过/不理解某些东西吗?自本书编写以来,Ruby 是否已更新以允许这样做?