('a'..'z').to_a.shuffle[0..7].join
从这里看来的 http://about.ac/rails-tutorial-2nd-cn/chapter1.html
不错,分享另外一个利用 shuffle 的代码,从哪儿看到的还真忘了~
# 随机排列字符串 class String def shuffle self.split('').shuffle.join end end puts "abcdefg".shuffle.inspect
学习了,之前一直用 random
ruby 1.9 以上
('a'..'z').to_a.sample(8).join [*('a'..'z')].sample(8).join
SecureRandom.hex 4
#4 楼 @Saito
>> SecureRandom.hex 4 RDoc::RI::Driver::NotFoundError: SecureRandom
[*?a..?z].sample(8).join
shuffle 中文叫洗牌
#6 楼 @orzfly 这个屌,看都看不懂
有数字和大写的组合:['a'..'z','0'..'9',*'A'..'Z'].sample(8).join
看到这,想问问,一般订单号的生成策略是?我在项目中是采用时间 +8 位随机数。
#9 楼 @mclee 请问一下这个原理是什么,数组里面的星号和逗号都代表什么呢?
#11 楼 @mfb777 星号是展开吧。
#12 楼 @chenge 也就是把 range 展开成数组了,实际上是三个子数组。明白了,哈哈。
学习了,不错,正好用上。
但有一个问题,就是这样子就不会有重复的了,真随机的话会有重复的吧……
@hexawing 我觉得这就是你思想有误了啊,楼主生成的是 7 位的随机字母,重复来说概率问题。