→ adrianshum:.... 問題和密碼產生一點關係都沒有.... 07/20 10:20
→ adrianshum:|a| 看書有關 blocks 的部份, join 你看 array 的doc 07/20 10:25
→ maxwux:不好意思!我是新手啦!!不過還是很謝謝你! 07/20 11:12
不好意思再請教一下
我稍稍做了註解,可以幫我看一下嗎?
我不確定我這樣的理解對不對?
#!/usr/bin/ruby -Ku
#定義字串的長度8個字元
def random_password(size = 8)
#將要當成密碼的字元存入chars的陣列中
chars = (('A'..'Z').to_a + ('a'..'z').to_a + ('0'..'9').to_a) - %w(I 1 l o
O 0 )
#做1~8次,將chars字串長度(58),從中取出亂數的一個數字
#然後這個取出的數字就是chars陣列中的一個元素,例如chars[0]就等於A
#經過collect之後這8個字分別是陣列中的8個元素
#再經由join之後,把陣列變成了字串
#而|a|是區塊變數,可省略不寫
(1..size).collect{|a| chars[rand(chars.size)] }.join
end
#印出亂數產生的密碼
puts random_password
※ 編輯: maxwux 來自: 121.254.96.194 (07/20 11:56)
※ 編輯: maxwux 來自: 121.254.96.194 (07/20 11:57)
推 hellolucky:26(大寫)+26(小寫)+10(數字)-6(I1loO0)=56 ?? 07/21 00:08
→ hellolucky:然後是做8(或size)次 不是1~8次 07/21 00:10
→ maxwux:感謝!我瞭解了!! 07/21 10:38