Ruby Methoden

Ruby-Methoden ähneln Funktionen in anderen Programmiersprachen. Ruby-Methoden werden verwendet, um eine oder mehrere wiederholte Anweisungen zu einer einzigen Einheit zu bündeln.

Methodennamen sollten mit einem Kleinbuchstaben beginnen. Wenn Sie einen Methodennamen mit einem Großbuchstaben beginnen, behandelt Ruby ihn möglicherweise als Konstante, wodurch der Aufruf falsch geparst werden kann.

Methoden sollten definiert werden, bevor sie aufgerufen werden; andernfalls löst Ruby eine Ausnahme für einen nicht definierten Methodenaufruf aus.

Syntax

def method_name [( [arg [= default]]...[, * arg [, &expr ]])] expr.. end

Sie können also eine einfache Methode wie folgt definieren:

def method_name expr.. end

Sie können eine Methode, die Parameter akzeptiert, wie folgt definieren:

def method_name (var1, var2) expr.. end

Sie können Standardwerte für Parameter festlegen, die verwendet werden, wenn die erforderlichen Parameter beim Aufruf der Methode nicht übergeben werden:

def method_name (var1=value1, var2=value2) expr.. end

Wenn Sie eine Methode aufrufen möchten, müssen Sie nur den Methodennamen verwenden, wie folgt:

method_name

Wenn Sie jedoch eine Methode mit Parametern aufrufen, müssen Sie die Parameter beim Schreiben des Methodennamens angeben, zum Beispiel:

method_name 25, 30

Der größte Nachteil bei der Verwendung von Methoden mit Parametern ist, dass Sie sich die Anzahl der Parameter merken müssen, wenn Sie die Methode aufrufen. Wenn Sie beispielsweise nur zwei Argumente an eine Methode übergeben, die drei Parameter akzeptiert, zeigt Ruby einen Fehler an.

Beispiel

#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test(a1="Ruby", a2="Perl") puts "Die Programmiersprache ist #{a1}" puts "Die Programmiersprache ist #{a2}" end test "C", "C++" test

Ausprobieren »

Die Ausgabe des obigen Beispiels ist:

编程语言为 C
编程语言为 C++
编程语言为 Ruby
编程语言为 Perl

Rückgabe von Werten aus Methoden

Jede Methode in Ruby gibt standardmäßig einen Wert zurück. Der zurückgegebene Wert ist der Wert der letzten Anweisung. Zum Beispiel:

Beispiel

def test i = 100 j = 10 k = 0 end

Wenn diese Methode aufgerufen wird, wird die zuletzt deklarierte Variable k zurückgegeben.

Ruby returnAnweisung

In Ruby wird diereturn-Anweisung verwendet, um einen oder mehrere Werte von einer Ruby-Methode zurückzugeben.

Syntax

return [expr[`,' expr...]]

Wenn mehr als zwei Ausdrücke angegeben werden, ist ein Array, das diese Werte enthält, der Rückgabewert. Wenn kein Ausdruck angegeben wird, ist nil der Rückgabewert.

Beispiel

returnorreturn 12orreturn 1,2,3

Betrachten Sie das folgende Beispiel:

Beispiel

#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test i = 100 j = 200 k = 300 return i, j, k end var = test puts var

Ausprobieren »

Die Ausgabe des obigen Beispiels ist:

100
200
300

Variable Anzahl von Parametern

Angenommen, Sie deklarieren eine Methode mit zwei Parametern. Wenn Sie diese Methode aufrufen, müssen Sie auch zwei Argumente übergeben.

Ruby erlaubt es Ihnen jedoch, Methoden mit einer variablen Anzahl von Parametern zu deklarieren. Betrachten wir das folgende Beispiel:

Beispiel

#!/usr/bin/ruby # -*- coding: UTF-8 -*- def sample (*test) puts "Die Anzahl der Parameter ist #{test.length}" for i in 0...test.length puts "Der Parameterwert ist #{test[i]}" end end sample "Zara", "6", "F" sample "Mac", "36", "M", "MCA"

Ausprobieren »

In diesem Code haben Sie eine Methode sample deklariert, die einen Parameter test akzeptiert. Dieser Parameter ist jedoch ein variabler Parameter. Das bedeutet, dass der Parameter eine variable Anzahl von Variablen annehmen kann. Die Ausgabe des obigen Beispiels ist:

参数个数为 3
参数值为 Zara
参数值为 6
参数值为 F
参数个数为 4
参数值为 Mac
参数值为 36
参数值为 M
参数值为 MCA

Klassenmethoden

Wenn eine Methode außerhalb einer Klasse definiert wird, ist sie standardmäßig als private markiert.privateAndererseits, wenn eine Methode innerhalb einer Klasse definiert wird, ist sie standardmäßig als public markiert.

Die standardmäßige Sichtbarkeit und dieprivateMarkierung können über diepublicoderprivate-Methoden des Moduls (Module) geändert werden.public oder private.

Wenn Sie auf die Methoden einer Klasse zugreifen möchten, müssen Sie zuerst die Klasse instanziieren. Dann können Sie mithilfe des Objekts auf jedes Mitglied der Klasse zugreifen.

Ruby bietet eine Möglichkeit, auf Methoden zuzugreifen, ohne zu instanziieren. Sehen wir uns an, wie man Klassenmethoden deklariert und auf sie zugreift:

class Accounts def reading_charge end def Accounts.return_date end end

Wir wissen bereits, wie die Methode return_date deklariert wird. Sie wird deklariert, indem man einen Punkt nach den Klassennamen setzt, gefolgt vom Methodennamen. Sie können direkt auf Klassenmethoden zugreifen, wie folgt:

Accounts.return_date

Um auf diese Methode zuzugreifen, müssen Sie kein Objekt der Klasse Accounts erstellen.

Ruby aliasAnweisung

Diese Anweisung wird verwendet, um eine Methode oder eine globale Variable mit einem Alias zu versehen. Aliase können nicht innerhalb eines Methodenkörpers definiert werden. Selbst wenn die Methode überschrieben wird, behält der Alias der Methode die aktuelle Definition der Methode bei.

Das Erstellen von Aliasen für nummerierte globale Variablen ($1, $2,...) ist verboten. Das Überschreiben eingebauter globaler Variablen kann zu schwerwiegenden Problemen führen.

Syntax

aliasMethodenname Methodennamealiasglobale Variable globale Variable

Beispiel

alias foo bar alias $MATCH $&

Hier haben wir den Alias foo für bar definiert und den Alias $MATCH für $&.

Ruby undefAnweisung

Diese Anweisung wird verwendet, um eine Methode zu undefinieren.undefSie kann nicht innerhalb eines Methodenkörpers vorkommen.

Durch die Verwendung vonundefundaliaskann die Schnittstelle der Klasse unabhängig von der Elternklasse geändert werden, aber bitte beachten Sie, dass es das Programm zum Absturz bringen kann, wenn Methoden innerhalb von sich selbst aufgerufen werden.

undefMethodenname

Beispiel

Das folgende Beispiel hebt die Methodendefinition der Methode namensbarauf:

undef bar
Andere Erweiterungen