So habe ich gelernt, nur dass statt des Schreibens Dinge wie:Ruby versucht eine neue Notation zu erfassen. (Injizieren (:) vs wählen (&: gerade), warum hat man &?)
[1,2,3,4,5].inject {|x,y| x + y} => 15
konnte ich schreiben
[1,2,3,4,5].inject(:+) => 15
ich habe auch gelernt, dass anstelle von
[1,2,3,4,5].select {|x| x.even?} => [2,4]
schreiben I
[1,2,3,4,5].select(&:even?) => [2,4]
schreiben konnte
Meine Frage ist, warum man (wählen) &
verwendet und das andere (inject) nicht. Ich bin sicher, dass die :
sind, weil even?
und +
sind bei Symbolen behandelt, aber ich würde gerne klären, warum die &
in einem verwendet wird und warum die :
verwendet werden.
Auch ich bin mir bewusst, dass ich diese Notationen auf mehr als nur inject
und select
tun konnte.
Vielen Dank!
Ich sehe. Sehr, sehr interessant! In Ruby finde ich, dass viele Dinge sehr einfach zu tun sind, so wie ich es bei meiner Auswahl getan habe. Sie gingen vorwärts und schrieben '{| elem | elem.send: even?} 'Ist das im Kern das, was mein Block im Hintergrund macht? Sich in dieses Format umwandeln und dann tun, was immer es sein soll? So viele verschiedene Möglichkeiten, Dinge in Ruby zu tun. Ich bin neugierig. – David
@David: Ja, das ist was 'select (&: even?)' Unter der Haube tut. –
@David vergessen Sie nicht, die Antwort zu akzeptieren, wenn es tatsächlich die Frage beantwortet! – vgoff