gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:34:29 27 4
gpt4 key购买 nike

Random#rand 和 Kernel#rand 真的有区别吗?

据我所知,他们使用了不同的“C”函数。

最佳答案

它们在使用 Range 调用时表现相同,但在其他几种情况下则不同。

  1. 当使用负整数-n(如-3)调用时,Random#rand引发 ArgumentError,而 Kernel#rand 的行为就好像你用 n 调用它(通过 (-n).to_int.abs)。
  2. 当使用 0 调用时,Random#rand 引发 ArgumentError,而Kernel#rand 就像您调用它时没有任何参数一样。
  3. 当使用 Float n 调用时,Random#rand 返回一个介于 0 之间的 float 和 n(正如预期的那样)。 Kernel#rand 做一个 n.to_int.abs 转换,所以例如 rand(-1.9) 等同于 rand(1),它总是返回 0; rand(0.1) 等价于 rand(0) 因此等价到 rand

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

关于Ruby:Random#rand 和 Kernel#rand 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13087730/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com