English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ruby 方法

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

Wert zurückgeben aus einer Methode

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.

Ruby return 语句

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

Veränderliche Anzahl von Parametern

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

Klassenmethode

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.

Ruby alias 语句

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。

Ruby undef 语句

这个语句用于取消方法定义。undef 不能出现在方法主体内。

通过使用 undefalias,类的接口可以从父类独立修改,但请注意,在自身内部方法调用时,它可能会破坏程序。

undef 方法名

在线示例

下面的示例取消名为 bar的方法定义:

undef bar