Як згадують усі, це "бризка". Шукати синтаксис Ruby неможливо, і я це задавав в інших питаннях. Відповідь на цю частину запитання - ви шукаєте далі
asterisk in ruby syntax
в Google. Google є для вас, просто покладіть на слова те, що бачите.
Anyhoo, як і багато коду Ruby, цей код досить щільний. The
line.split(/=|;/)
робить масив елементів SIX, first_name, mickey, last_name, mouse, country, usa
. Потім бризка використовується для того, щоб зробити це в хеш. Тепер люди Ruby завжди надсилають вас подивитися метод Splat, оскільки в Ruby все виставлено. Я поняття не маю, де це, але як тільки ви це зробите, ви побачите, що він проходить for
через масив і створює хеш.
Ви шукаєте код у основній документації. Якщо ви не можете його знайти (я не зміг), ви спробуєте написати якийсь такий код (який працює, але НЕ є кодовим кодом Ruby):
line = "first_name=mickey;last_name=mouse;country=usa"
presplat = line.split(/=|;/)
splat = Hash.new
for i in (0..presplat.length-1)
splat[presplat[i]] = presplat[i+1] if i%2==0
end
puts splat["first_name"]
і тоді банда Ruby зможе сказати вам, чому ваш код нерозумний, поганий чи просто невірний.
Якщо ви читали це далеко, проведіть прочитане в документації Hash для ініціалізації.
В основному хеш, ініціалізований декількома аргументами, створює їх як пари ключових значень:
Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
Отже, у вашому прикладі це призведе до наступного хешу:
{"first_name"=>"mickey", "last_name"=>"mouse", "county"=>"usa"}
a,b,*c = d,e,f,*g
встановлюється a = d, b = e, c = [f, g0, g1, g2, ..., gn], де g = [g0, g1, g2, ..., gn]