草庐IT

random_integer

全部标签

ruby - 为什么 `Kernel::String` 检查 `to_str` 结果,而 `Kernel::Integer` 不检查 `to_int` 结果?

Kernel::Integer和Kernel::String都通过首先尝试调用“long”方法(to_int和to_str),然后是“短”方法(分别为to_i和to_str)。两种方法都检查“短”方法结果的类,并在需要时引发错误:[1]pry(main)>classDummy[1]pry(main)*defto_i[1]pry(main)*"42"[1]pry(main)*end[1]pry(main)*defto_s[1]pry(main)*42[1]pry(main)*end[1]pry(main)*end;[2]pry(main)>Integer(Dummy.new)TypeEr

Ruby:Random#rand 和 Kernel#rand 之间的区别

Random#rand和Kernel#rand真的有区别吗?据我所知,他们使用了不同的“C”函数。 最佳答案 它们在使用Range调用时表现相同,但在其他几种情况下则不同。当使用负整数-n(如-3)调用时,Random#rand引发ArgumentError,而Kernel#rand的行为就好像你用n调用它(通过(-n).to_int.abs)。当使用0调用时,Random#rand引发ArgumentError,而Kernel#rand就像您调用它时没有任何参数一样。当使用Floatn调用时,Random#rand返回一个介于0之

ruby - 尝试使用 SecureRandom.random_number ruby​​ 2.0.0 的包含范围

我正在使用securerandom,问题是它包含数字“0”,如0..56,和0..46而不是1..56,以及1..46(彩票不包含数字0)。0可以在下面的第二个百万数字输出中看到。我以为我找到了一种方法来排除下面的0(char1,char2),但我失败了。当我使用包含范围的rand(1..56)时,它工作得很好(但一些帖子建议远离rand())。但是,当我尝试在securerandom上使用包含char1和char2的包含范围时,它不起作用。Error:[nil@nillottery]$./mega_millions.rb/dev/null/.rvm/rubies/ruby-2.0.0

Ruby Integer 和 Fixnum 意外行为

我想使用Integer类的gcd函数。使用RubyDoc中的示例作为测试,它失败了:irb(main):001:0>72.gcd168NoMethodError:undefinedmethod`gcd'for72:Fixnumfrom(irb):1我有Windows一键安装程序ruby1.8.6(2008-08-11patchlevel287)[i386-mswin32]。在具有相同版本的ruby​​的其他PC上,这可以正常工作。有什么想法吗? 最佳答案 尝试require'rubygems'72.gcd168

ruby-on-rails - ruby 哈希 : can't convert String into Integer

我是Ruby的新手,我遇到了一些哈希问题。我从YouTubeAPI返回的XML已转换为哈希。这是Hash.from_xml()返回的散列:http://pastebin.com/9xxE6iXU我试图从哈希中获取每个结果的特定元素,例如标题、链接、作者等。每当我尝试遍历哈希或获取特定元素时,我都会收到“无法转换StringintoInteger”错误。这是我在循环中使用的代码:@data["feed"]["entry"]["title"].eachdo|key,value|""+key+""+value+""end我也尝试过抓取特定元素,例如@data["feed"]["entry"]

ruby - 12345.class 在 Ruby 中返回 'Integer' 而不是 'Fixnum'

在我正在观看的Ruby教程中,当您使用.class输入数字时,它会返回Bignum或Fixnum。当我这样做时,我得到的是Integer:12345.class#=>Integer我在Mac的命令行中使用irb。为什么上面的代码不像教程中那样返回Fixnum? 最佳答案 这取决于Ruby版本。从Ruby2.4.0开始,我们只有Integer,不再有Fixnum和Bignumhttps://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/

ruby - Integer === 3 如何工作?

据我了解,===运算符会测试RHS对象是否是LHS对象的成员。这就说得通了。但是这在Ruby中是如何工作的呢?我正在查看Ruby文档,我只看到===在Object中定义,而在Integer本身中看不到它。只是没有记录吗? 最佳答案 Integer是一个类,这(至少在Ruby中)意味着它只是一个无聊的旧普通对象,就像任何其他对象一样,它恰好是Class的一个实例类(而不是Object或String或MyWhateverFoo)。Class又是Module的子类(虽然可以说它不应该是,因为它违反了Liskov替换原则,但这是另一个论坛的

ruby - 基本 ruby 数组代码 : Testing if an array has a specific integer

我正在尝试测试数组中是否包含特定整数。现在我正在使用这个测试;defadmin?current_user.role_ids==[1,2]||current_user.role_ids==[2]||current_user.role_ids==[1,2,5]end代码有效,但我更愿意只测试整数“2”,而不是明确写出包含“2”的所有可能的数字组合。如果您有任何ruby建议,我将不胜感激。这是我在飞行中所能想象到的最好的结果。谢谢! 最佳答案 您是否在寻找Array#include??current_user.role_ids.inclu

ruby - 为什么我不能在 Ruby 中实例化 Integer 类?

我认为Ruby中的所有类都可以实例化。是什么阻止了Integer类被new方法实例化?Integer.new#=>NoMethodError:undefinedmethod`new'forInteger:Class 最佳答案 其中有一些。除了Integer,Float,和Symbol,您无法创建TrueClass的新实例,FalseClass和NilClass也。这些类(及其各自的实例)在Ruby中都是特殊的,并且在内部以特定方式处理。例如,对于小整数,Ruby会隐式处理它们。Ruby不是为每个整数创建一个新的“实际”Ruby对象(

ruby-on-rails - 未定义的方法 `get?' 为 302 :Integer

我想在我的Rails应用程序中将ruby​​版本从2.4.2升级到2.5.0。在我使用turbolinks的地方,所有规范/测试都失败了。turbolinks和ruby​​2.5.0是否存在已知问题?这是终端上的输出。Failure/Error:expect(request).toredirect_tocompany_salesmen_path(salesman.company)NoMethodError:undefinedmethod`get?'for302:Integer#/Users/dennish/.rvm/gems/ruby-2.5.0/gems/turbolinks-5.1