我所拥有的是一种用于生成随机十六进制值的方法.例如666或FF7
但是,我认为它看起来并不简单/优雅.我想要的是让它更简单,这也许会使我的代码更短,但我不知道如何.这就是我需要提示或提示的原因
到目前为止,这是我的代码:
def random_values
random_values = Array.new
letters = ['A','B','C','D','E','F']
for i in 1..15
if i <= 9
random_values << i
else
random_values << letters[i-10]
end
end
return random_values.shuffle[0].to_s + random_values.shuffle[0].to_s + random_values.shuffle[0].to_s
end
Run Code Online (Sandbox Code Playgroud)
正如您可能看到的,我不会生成随机数.我只是将包含我想要的值的数组洗牌,这意味着数组中的所有数字都是唯一的,这是不需要的,但在编写代码时对我来说是最简单的解决方案.
我最关心的是返回线 ..如果只有可能写的像:
return 3.times { random_values.shuffle[0] }
Run Code Online (Sandbox Code Playgroud)
要么
return random_values.shuffle[0].to_s *3
提前致谢!
def random_value
r = Random.new
((r.rand * 16)).to_i.to_s(16)
end
puts random_value + random_value + random_value
Run Code Online (Sandbox Code Playgroud)
或者,经过一些快速研究:
"%06x" % (rand * 0xffffff)
Run Code Online (Sandbox Code Playgroud)
此外,您本身不应该寻找更有效的解决方案.您似乎在寻找更优雅,简单和直观的东西.(顺便说一下,我的解决方案都不是.搜索过的是.)
| 归档时间: |
|
| 查看次数: |
501 次 |
| 最近记录: |