加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:14:29 所属栏目:百科 来源:网络整理
导读:Random#rand和Kernel#rand之间真的有区别吗? 从我所看到的,他们使用不同的’C’功能. 解决方法 使用Range调用它们时的行为相同,但在其他几种情况下则不同. 当使用负整数-n(如-3)调用时,随机#rand 引发ArgumentError,而Kernel#rand就像你一样 用n(by(-n).to_
Random#rand和Kernel#rand之间真的有区别吗?

从我所看到的,他们使用不同的’C’功能.

解决方法

使用Range调用它们时的行为相同,但在其他几种情况下则不同.

>当使用负整数-n(如-3)调用时,随机#rand
引发ArgumentError,而Kernel#rand就像你一样
用n(by(-n).to_int.abs)调用它.
>当使用0调用时,Random#rand会引发ArgumentError,而
内核#rand就像你没有任何参数调用它一样.
>使用Float n调用时,Random#rand返回0之间的浮点数
和n(如预期的那样).内核#rand执行n.to_int.abs转换,
所以例如rand(-1.9)相当于rand(1),它总是如此
返回0; rand(0.1)相当于rand(0),因此是等价的
兰特.

对于奇怪的参数,似乎Random#rand(当然还有Random :: rand)比Kernel#rand更健壮.有关Kernel#randRandom#rand的文档的更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读