Как все говорят, это «сплат». Искать синтаксис Ruby невозможно, и я задавал это в других вопросах. Ответ на эту часть вопроса заключается в том, что вы ищете
asterisk in ruby syntax
в гугле. Google для вас, просто поместите то, что вы видите, в слова.
В любом случае, как много кода на Ruby, этот код довольно плотный.
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["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]