Ich bin (sehr) neu in Ruby. Ich habe eine interessante Möglichkeit gefunden, eine Funktion aufzurufen, aber ich kann nicht herausfinden, wie sie wirklich funktioniert.Ruby Funktionsaufruf: foo "bar" do
def foo (arg1)
puts arg1
end
foo "bar" do
"hello"
puts "world"
thisStuff
end
Könnte jemand mir bitte erklären, was hier geschieht? Es gibt keine Funktion namens "thisStuff", aber der Code kompiliert ohne Probleme und das Konsolenergebnis ist "bar".
Das 'do' ...' end' ist ein * Block *, im Wesentlichen eine anonyme Funktion, die an 'foo' übergeben wird. Es kann innerhalb der 'foo'-Funktion mit' yield' ausgeführt werden, aber 'yield' wird nie aufgerufen, so dass der Block nie ausgeführt wird. –
Vielen Dank, es ist genau das, was ich gesucht habe. Könnten Sie Ihren Kommentar zu einer offiziellen Antwort machen, also könnte ich es als Lösung festlegen und diese Frage schließen? – everyonecancode
Ihre Frage ist unklar. Ruby hat keine Funktionen. Es gibt mindestens drei verschiedene Dinge in dem von Ihnen geposteten Code-Snippet, die man möglicherweise als "Funktion" bezeichnen könnte, obwohl in Ruby keines davon so genannt wird. Von wem sprichst du? –