Biorąc pod uwagę kod Ruby
line = "first_name=mickey;last_name=mouse;country=usa"
record = Hash[*line.split(/=|;/)]
Rozumiem wszystko w drugiej linii oprócz *
operatora - co robi i gdzie jest do tego dokumentacja? (jak można się domyślić, szukanie tego przypadku okazuje się trudne ...)
a,b,*c = d,e,f,*g
ustawia a = d, b = e, ic = [f, g0, g1, g2, ..., gn], gdzie g = [g0, g1, g2, ..., gn]Operator splat rozpakowuje tablicę przekazaną do funkcji, dzięki czemu każdy element jest wysyłany do funkcji jako indywidualny parametr.
Prosty przykład:
Otóż to!
źródło
Jak wszyscy wspominają, jest to „plama”. Poszukiwanie składni Ruby jest niemożliwe i zadałem to w innych pytaniach. Odpowiedź na tę część pytania jest taka, że szukasz
w Google. Google jest do Twojej dyspozycji, po prostu opisz to, co widzisz, w słowach.
W każdym razie, podobnie jak większość kodu Rubiego, ten kod jest dość gęsty. Plik
sprawia szereg elementów sześć,
first_name, mickey, last_name, mouse, country, usa
. Następnie ikona jest używana do przekształcenia tego w skrót. Teraz ludzie Ruby zawsze wysyłają cię do metody Splat, ponieważ wszystko jest ujawnione w Rubim. Nie mam pojęcia, gdzie to jest, ale kiedy już to zrobisz, zobaczysz, że przechodzifor
przez tablicę i buduje hash.Szukałbyś kodu w podstawowej dokumentacji. Jeśli nie możesz go znaleźć (nie mogłem), spróbuj napisać taki kod (który działa, ale NIE jest kodem podobnym do Rubiego):
a wtedy gang Rubiego będzie w stanie powiedzieć ci, dlaczego twój kod jest głupi, zły lub po prostu błędny.
Jeśli przeczytałeś do tej pory, przeczytaj dokumentację Hash dotyczącą inicjalizacji.
Zasadniczo skrót, który jest inicjowany kilkoma argumentami, tworzy je jako pary klucz-wartość:
W twoim przykładzie doprowadziłoby to do następującego skrótu:
źródło