Das beste Rubin-Block-Tutorial im Jahr 2024. In diesem Tutorial können Sie Grammatik,yield- Anweisung,Blöcke und Methoden,BEGIN und END-Blöcke, lernen
Sie wissen bereits, wie man ein Ruby-Methode zu definieren und wie Sie die Methode aufrufen. Ebenso hat Rubin das Konzept eines Blocks.
block_name{ statement1 statement2 dedededede }
Hier erfahren Sie , wie Sie eine einfacheyield- Anweisung zu verwenden , um den Block zu nennen. Sie werden auch lernen , wie man dieyield- Anweisung mit Parametern an den aufgerufenen Baustein zu verwenden. Im Beispiel gibt es zwei Arten vonErtrag- Anweisung.
Lassen Sie uns ein Beispiel yield-Anweisung aussehen:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test puts "在 test 方法内" yield puts "你又回到了 test 方法内" yield end test {puts "你在块内"}
Beispiele für die obigen operativen Ergebnisse wie folgt:
在 test 方法内 你在块内 你又回到了 test 方法内 你在块内
Sie können auch yield-Anweisung mit Parameter übergeben. Hier ist ein Beispiel:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test yield 5 puts "在 test 方法内" yield 100 end test {|i| puts "你在块 #{i} 内"}
Beispiele für die obigen operativen Ergebnisse wie folgt:
你在块 5 内 在 test 方法内 你在块 100 内
Hierbei wird nach deryield- Anweisung gefolgt Parameter. Sie können sogar mehrere Parameter übergeben. In dem Block, können Sie eine Variable zwischen zwei vertikalen Balken platzieren, um die Parameter zu akzeptieren. So wird in dem obigen Code, Ausbeute 5-Anweisung wird als Parameter auf den Wert von 5 Teststücke bestanden.
Nun, sehen Sie die folgende Erklärung ab:
test {|i| puts "你在块 #{i} 内"}
Hier wird der Wert von 5 die Variable i zu erhalten. Jetzt setzen wir die folgende Aussage zu beachten:
puts "你在块 #{i} 内"
Dies stellt die Ausgabe-Anweisung lautet:
你在块 5 内
Wenn Sie mehrere Parameter übergeben wollen, dann ist dieAusbeuteAussage wie folgt:
yield a, b
Zu diesem Zeitpunkt, wie in dem Block gezeigt:
test {|a, b| statement}
Parameter durch Komma getrennt.
Sie haben zwischen dem Block und dem Verfahren, wie miteinander in Beziehung gesehen. Sie verwenden in der Regel die yield-Anweisung den Block aus der Methode ruft den gleichen Namen haben. Daher ist der Code wie folgt:
#!/usr/bin/ruby def test yield end test{ puts "Hello world"}
Dieses Beispiel ist der einfachste Weg, um den Block zu erzielen. Sie verwenden dieyield- Anweisung den Testblock aufruft.
Aber wenn der letzte Parameter vor dem Verfahren mit & dann können Sie das Verfahren einen Block übergeben wird, und dieser Block kann mit dem letzten Parameter zugeordnet werden. Wenn die * und & erscheinen auch in der Parameterliste und sollte auf der Rückseite platziert werden.
#!/usr/bin/ruby def test(&block) block.call end test { puts "Hello World!"}
Beispiele für die obigen operativen Ergebnisse wie folgt:
Hello World!
Jede Datei kann Ruby-Quellcode deklarieren, wenn Codeblöcke (BEGIN-Block), wenn die Datei ausgeführt wird, geladen, und nach dem Programm beendet Codeblöcke Ausführung zu laufen (END-Block).
#!/usr/bin/ruby BEGIN { # BEGIN 代码块 puts "BEGIN 代码块" } END { # END 代码块 puts "END 代码块" } # MAIN 代码块 puts "MAIN 代码块"
Ein Programm kann mehrere BEGIN und END-Blöcke enthalten. BEGIN-Block wird in der Reihenfolge ausgeführt, in der sie erscheinen. END Blöcke, wie sie erscheinen in umgekehrter Reihenfolge. Bei der Ausführung erzeugt die obige Programm die folgenden Ergebnisse:
BEGIN 代码块 MAIN 代码块 END 代码块