0

我正在阅读 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 是否已更新以允许这样做?

4

1 回答 1

4

Kernel#rand自 Ruby 1.9.3 以来已经接受了一个范围,所以我想这本书是在那之前写的。

于 2013-11-09T17:15:54.907 回答