English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ruby Methoden sind ähnlich wie Funktionen in anderen Programmiersprachen. Ruby Methoden dienen dazu, eine oder mehrere wiederholte Anweisungen zu einem Unit zu bündeln.
Methodennamen sollten mit einem kleinen Buchstaben beginnen. Wenn Sie den Großbuchstaben als Anfang eines Methodennamens verwenden, könnte Ruby ihn als Konstante interpretieren und daher eine falsche Auswertung verursachen.
Methoden sollten vor dem Aufruf definiert werden,否则 Ruby erzeugt eine Ausnahme für nicht definierte Methodenaufgaben.
def method_name [( [arg [= default]]...[, * arg [, &expr [[= default]]...[, expr.. end
Daher können Sie eine einfache Methode wie folgt definieren:
def method_name expr.. end
Sie können eine Methode definieren, die Parameter akzeptiert, wie folgt:
def method_name (var1, var2) expr.. end
Sie können Standardwerte für Parameter festlegen, die verwendet werden, wenn notwendige Parameter beim Aufruf der Methode nicht übergeben werden:
def method_name (var1=value1, var2=value2) expr.. end
Wenn Sie eine Methode aufrufen möchten, genügt es, einfach den Methodennamen zu verwenden, wie folgt:
method_name
Wenn Sie jedoch Methoden mit Parametern aufrufen, müssen Sie die Parameter beim Schreiben des Methodennamens angeben, zum Beispiel:
method_name 25, 30
Der größte Nachteil der Verwendung von Methoden mit Parametern ist, dass man sich bei Aufruf der Methode an die Anzahl der Parameter erinnern muss. Zum Beispiel zeigt Ruby einen Fehler an, wenn Sie einem Methoden, die drei Parameter akzeptiert, nur zwei Parameter übergeben.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test(a1="Ruby", a2="Perl")" puts "Programmiersprache ist #{a"1" puts "Programmiersprache ist #{a"2" end test "C", "C"++" test
Der Ausgabefehler des obigen Beispiels ist wie folgt:
Programmiersprache ist C Programmiersprache ist C++ Programmiersprache ist Ruby Programmiersprache ist Perl
Jede Methode in Ruby gibt standardmäßig einen Wert zurück. Dieser zurückgegebene Wert ist der Wert des letzten Ausdrucks. Zum Beispiel:
def test i = 100 j = 10 k = 0 end
Bei Aufruf dieser Methode wird die zuletzt deklarierte Variable k zurückgegeben.
In Ruby return Dieser Ausdruck wird verwendet, um eine oder mehrere Werte aus einem Ruby-Methode zurückzugeben.
return [expr[`,' expr...]]
Wenn mehr als zwei Ausdrücke angegeben werden, enthält das Rückgabearray diese Werte. Wenn kein Ausdruck angegeben wird, ist das Rückgabearray nil.
return oder return 12 oder return 1,2,3
Sehen Sie sich das folgende Beispiel an:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test i = 100 j = 200 k = 300 return i, j, k end var = test puts var
Der Ausgabefehler des obigen Beispiels ist wie folgt:
100 200 300
Angenommen, Sie haben eine Methode mit zwei Parametern deklariert. Wenn Sie diese Methode aufrufen, müssen Sie gleichzeitig auch zwei Parameter übergeben.
Aber Ruby ermöglicht es Ihnen, Methoden mit variabler Anzahl von Parametern zu deklarieren. Lassen Sie uns das folgende Beispiel betrachten:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def sample (*test) puts "Anzahl der Parameter #{test.length}" for i in 0...test.length puts "Parameterwert #{test[i]}" end end sample "Zara", ""6"F" sample "Mac", ""36"M", "MCA"
In diesem Code haben Sie bereits eine Methode sample deklariert, die einen Parameter test annimmt. Dieser Parameter ist jedoch ein Variablenparameter. Dies bedeutet, dass Parameter eine unterschiedliche Anzahl von Variablen haben können. Der Ausgabefehler des obigen Beispiels ist wie folgt:
Anzahl der Parameter 3 Parameterwert Zara Parameterwert 6 Parameterwert F Anzahl der Parameter 4 Parameterwert Mac Parameterwert 36 Parameterwert M Parameterwert MCA
Wenn eine Methode außerhalb der Klasse definiert ist, wird die Methode standardmäßig markiert als privateAndererseits wird eine Methode, die in der Klasse definiert ist, standardmäßig als public markiert.
Standardzugänglichkeit der Methoden. private markiert die Standardzugänglichkeit der Methoden durch das Modul (Module) und public oder private Veränderung.
Wenn Sie auf Methoden der Klasse zugreifen möchten, müssen Sie zunächst die Klasse exemplifizieren. Dann können Sie über das Objekt auf alle Mitglieder der Klasse zugreifen.
Ruby bietet eine Möglichkeit, Methoden ohne Beispielisierung zu erreichen. Lassen Sie uns sehen, wie man Klassenmethoden deklariert und 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 durch das Anhängen eines Punktes nach dem Klassennamen und dem Methodennamen deklariert. 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.
Dieser Ausdruck wird verwendet, um Aliase für Methoden oder globale Variablen zu erstellen. Aliase können nicht im Methodenbody definiert werden. Selbst wenn die Methode überschrieben wird, bleibt das Alias der Methode bei der aktuellen Definition der Methode.
为编号的全局变量($1, $2,...)起别名是被禁止的。重写内置的全局变量可能会导致严重的问题。
alias 方法名 方法名 alias 全局变量 全局变量
alias foo bar alias $MATCH $&
在这里,我们已经为 bar 定义了别名为 foo,为 $& 定义了别名为 $MATCH。
这个语句用于取消方法定义。undef 不能出现在方法主体内。
通过使用 undef 和 alias,类的接口可以从父类独立修改,但请注意,在自身内部方法调用时,它可能会破坏程序。
undef 方法名
下面的示例取消名为 bar的方法定义:
undef bar