Ich habe die neueste Ruby-Version ausgecheckt, um ein bisschen mit den letzten Änderungen zu spielen. Das erste, was ich zu tun versuchte, war ein Ruby-Lambda/Block/Proc aufzurufen, genau wie bei einem Python-Aufruf.Warum ist der Ruby 1.9 Lambda-Aufruf nicht möglich ohne den Punkt vor den Klammern?
a = lambda {|x| puts x}
a.call(4) # works, and prints 4
a[4] # works and prints 4
a.(4) # same
a(4) # undefined method 'a' for main:Object
Warum ist der letzte Anruf nicht möglich? Wird es jemals sein?
Kannst du bitte das Lambda-Skript etwas erklären? – Geo
ok, wenn Sie versuchen, eine Methode mit dem Namen 'blah()' und 'method_missing' aufzurufen, wird geprüft, ob ein Lambda namens' blah' im entsprechenden Kontext definiert ist. Wenn solch ein Lambda definiert ist, dann ruft es einfach das Lambda mit der üblichen "blah.call" -Syntax auf, es gibt auch alle Parameter weiter, die gegeben wurden – horseyguy
Ich denke, das ist ein genialer Hack. Vielen Dank. – Geo