如何生成六种随机十六进制颜色并将它们放入 Ruby 数组中



我正在与RMagick一起制作一个项目,该项目会生成有关大小和颜色的随机横幅广告。

第一步是这个,但它不能正常工作。我正在使用所谓的三元语句来制作字符串,如"#ffffff、#f0f1cd、#123fff"等。

# Generate sixteen random colors
1.upto(16) { |i|
    (defined? colors) ? colors << ", #%06x" % (rand(0xffffff)) : colors = "#%06x" % (rand(0xffffff))
}
puts colors.split(',')

期望的结果不正确。我希望它拆分成一个数组,如下所示: ["#ffffff"、"#f0f1cd"、"#123fff"]

以最优雅的方式。

你可以这样做,这样会更容易:

colors = 3.times.map{"%06x" % (rand * 0x1000000)}

注意:如果您使用的是 Ruby 1.9.3,则可以使用范围。

colors = 3.times.map{"%06x" % rand(0..0xffffff)}

最新更新