require 'pp'
p *1..10
To wypisuje 1-10. Dlaczego jest to tak zwięzłe? A co jeszcze możesz z tym zrobić?Co to jest funkcja w Rubim, która pozwala "p * 1..10" wydrukować numery 1-10?
require 'pp'
p *1..10
To wypisuje 1-10. Dlaczego jest to tak zwięzłe? A co jeszcze możesz z tym zrobić?Co to jest funkcja w Rubim, która pozwala "p * 1..10" wydrukować numery 1-10?
To jest operator "splat". Może być używany do rozbijania tablic i zakresów oraz zbierania wartości podczas przydzielania.
tutaj wartości w przypisania są zbierane:
a, *b = 1,2,3,4
=> a = 1
b = [2,3,4]
W tym przykładzie, wartości w wewnętrznej tablicy (The [3,4]
jeden) jest rozłożonym i zebrano w zawierających tablicy:
a = [1,2, *[3,4]]
=> a = [1,2,3,4]
Możesz zdefiniować funkcje, które zbierają argumenty do tablicy:
def foo(*args)
p args
end
foo(1,2,"three",4)
=> [1,2,"three",4]
Well:
require pp
importuje funkcjonalności ładnego drukowaniap
to metoda dość drukowanie z varargs, która ślicznotka drukuje każdy argument*
oznacza „rozwinąć argumentu do varargs "zamiast traktować go jako pojedynczy argumentCzy to wyjaśnia to odpowiednio? Jeśli nie, proszę wyjaśnić, który fragment jest mylący.
+1 dla ac rzetelna i czysta odpowiedź, gdy pojawi się znak 50K ... –
Dlaczego to zostało odrzucone? Moja odpowiedź nie zawierała szczegółów na temat jednego aspektu, ponieważ nie wiedziałem, który z nich wprowadza zamieszanie w OP, ale jest to świetne rozwiązanie dla operatora. –