การใช้ทับทิมสามารถสร้างอาร์เรย์ของตัวอักษรแต่ละตัวและ 0-9 ได้อย่างง่ายดายหรือไม่?
การใช้ทับทิมสามารถสร้างอาร์เรย์ของตัวอักษรแต่ละตัวและ 0-9 ได้อย่างง่ายดายหรือไม่?
คำตอบ:
[*('a'..'z'), *('0'..'9')] # doesn't work in Ruby 1.8
หรือ
('a'..'z').to_a + ('0'..'9').to_a # works in 1.8 and 1.9
หรือ
(0...36).map{ |i| i.to_s 36 }
( Integer#to_s
วิธีการแปลงตัวเลขเป็นสตริงที่แสดงในระบบตัวเลขที่ต้องการ)
สำหรับตัวอักษรหรือตัวเลขคุณสามารถสร้างช่วงและวนซ้ำได้ ลองทำสิ่งนี้เพื่อรับแนวคิดทั่วไป:
("a".."z").each { |letter| p letter }
ในการดึงอาร์เรย์ออกมาให้ลองทำดังต่อไปนี้:
("a".."z").to_a
คุณสามารถทำได้ด้วยวิธีนี้:
'a'.upto('z').to_a + 0.upto(9).to_a
ลองสิ่งนี้:
alphabet_array = [*'a'..'z', *'A'..'Z', *'0'..'9']
หรือเป็นสตริง:
alphabet_string = alphabet_array.join
letters = *('a'..'z')
=> ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
myarr = [*?a..?z] #generates an array of strings for each letter a to z
myarr = [*?a..?z] + [*?0..?9] # array of strings a-z and 0-9
คุณสามารถทำได้:
("0".."Z").map { |i| i }
*
ดำเนินการที่ใช้ในบริบทนี้หรือไม่ เป็นเรื่องใหม่สำหรับฉัน