require 'pp'
p *1..10
Dies druckt 1-10 aus. Warum ist das so knapp? Und was kannst du sonst noch damit machen?Was ist die Funktion in Ruby, die "p * 1..10" erlaubt, die Zahlen 1-10 auszudrucken?
require 'pp'
p *1..10
Dies druckt 1-10 aus. Warum ist das so knapp? Und was kannst du sonst noch damit machen?Was ist die Funktion in Ruby, die "p * 1..10" erlaubt, die Zahlen 1-10 auszudrucken?
Es ist "der Splat" -Operator. Es kann verwendet werden, um Arrays und Bereiche zu explodieren und Werte während der Zuweisung zu sammeln.
Hier werden die Werte in einer Zuordnungs werden gesammelt:
a, *b = 1,2,3,4
=> a = 1
b = [2,3,4]
In diesem Beispiel werden die Werte in der inneren Anordnung (die [3,4]
one) aufgelöst wird und mit dem enthaltenden Array gesammelt:
a = [1,2, *[3,4]]
=> a = [1,2,3,4]
Sie können Funktionen definieren, die Argumente in einem Array sammeln:
def foo(*args)
p args
end
foo(1,2,"three",4)
=> [1,2,"three",4]
Well:
require pp
importiert die recht-Druckfunktionalitätp
ist ein ziemlich Druckverfahren mit varargs, was ziemlich Abdrücken jedes Argument*
bedeutet „das Argument erweitern in varargs "anstatt es als ein einziges Argument zu behandelnErklärt dies ausreichend? Wenn nicht, bitte erläutern Sie, welches Bit verwirrend ist.
+1 für ac Ancise und purty antworten, wie die 50K Marke wimmelt ... –
Warum wurde dies downvoted? Meine Antwort ging nicht auf einen Aspekt mit der Begründung ein, dass ich nicht wüsste, welches Bit das OP verwirrte, aber das ist großartig für den Splat-Operator. –