English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Les méthodes Ruby sont similaires aux fonctions dans d'autres langages de programmation. Les méthodes Ruby sont utilisées pour regrouper une ou plusieurs instructions répétées dans un seul élément.
Le nom de la méthode doit commencer par une lettre minuscule. Si vous commencez par une lettre majuscule dans le nom de la méthode, Ruby pourrait le prendre pour une constante, ce qui pourrait entraîner une analyse incorrecte des appels.
La méthode doit être définie avant l'appel, sinon Ruby génère une exception de appel de méthode non définie.
def method_name [( [arg [= default]]...[, * arg [, &expr [[= default]]...[, expr.. fin
Donc, vous pouvez définir une méthode simple, comme indiqué ci-dessous :
def method_name expr.. fin
Vous pouvez définir une méthode acceptant des paramètres, comme indiqué ci-dessous :
def method_name (var1, var2) expr.. fin
Vous pouvez définir des valeurs par défaut pour les paramètres, qui seront utilisées si les paramètres nécessaires ne sont pas passés lors de l'appel de la méthode :
def method_name (var1=value1, var2=value2) expr.. fin
Lorsque vous devez appeler une méthode, vous pouvez utiliser simplement le nom de la méthode, comme indiqué ci-dessous :
method_name
Mais, lorsque vous appelez une méthode avec des paramètres, vous devez également inclure les paramètres dans le nom de la méthode, par exemple :
method_name 25, 30
L'un des plus grands inconvénients de l'utilisation de méthodes avec paramètres est qu'il faut se souvenir du nombre de paramètres lors de l'appel de la méthode. Par exemple, si vous passez deux paramètres à une méthode qui accepte trois paramètres, Ruby affichera une erreur.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test(a1="Ruby", a2="Perl")" puts "Le langage de programmation est #{a"1" puts "Le langage de programmation est #{a"2" fin test "C", "C"++" test
Le résultat de l'exécution de l'exemple suivant est :
Le langage de programmation est C Le langage de programmation est C++ Le langage de programmation est Ruby Le langage de programmation est Perl
Chaque méthode dans Ruby retourne par défaut une valeur. La valeur retournée est la valeur de la dernière instruction. Par exemple :
def test i = 100 j = 10 k = 0 fin
Lors de l'appel de cette méthode, le dernier variable déclarée k sera retourné.
Dans Ruby return La déclaration est utilisée pour retourner une ou plusieurs valeurs depuis une méthode Ruby.
return [expr[`,' expr...]]
Si plus de deux expressions sont fournies, l'array contenant ces valeurs sera le résultat retourné. Si aucune expression n'est fournie, nil sera le résultat retourné.
return ou return 12 ou return 1,2,3
Regardons l'exemple suivant :
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test i = 100 j = 200 k = 300 return i, j, k fin var = test puts var
Le résultat de l'exécution de l'exemple suivant est :
100 200 300
Supposons que vous ayez déclaré une méthode avec deux paramètres, vous devez également transmettre deux paramètres lorsque vous appelez cette méthode.
Cependant, Ruby vous permet de déclarer des méthodes avec un nombre variable de paramètres. Voyons l'exemple suivant :
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def sample (*test) puts "Le nombre de paramètres est #{test.length}" for i in 0...test.length puts "La valeur du paramètre est #{test[i]}" fin fin sample "Zara", ""6"F" sample "Mac", ""36"M", "MCA"
Dans ce segment de code, vous avez déjà déclaré une méthode sample qui accepte un paramètre test. Cependant, ce paramètre est un paramètre variable. Cela signifie que les paramètres peuvent être de différentes quantités. Le résultat de l'exécution de l'exemple suivant est :
le nombre de paramètres est 3 la valeur du paramètre est Zara la valeur du paramètre est 6 la valeur du paramètre est F le nombre de paramètres est 4 la valeur du paramètre est Mac la valeur du paramètre est 36 la valeur du paramètre est M la valeur du paramètre est MCA
Lorsque une méthode est définie à l'extérieur d'une classe, le marquage par défaut de la méthode est privé. D'autre part, si une méthode est définie dans une classe, elle est marquée par défaut comme public.
moyen du module (Module) et privé le marquage de visibilité par défaut des méthodes est possible via le public ou privé changement.
Lorsque vous souhaitez accéder aux méthodes d'une classe, vous devez d'abord instancier la classe. Ensuite, en utilisant l'objet, vous pouvez accéder à tous les membres de la classe.
Ruby offre un moyen d'accéder aux méthodes sans avoir à instancier la classe. Voyons comment déclarer et accéder aux méthodes de classe :
class Accounts def reading_charge fin def Accounts.return_date fin fin
Nous savons déjà comment la méthode return_date est déclarée. Elle est déclarée en suivant le nom de la classe d'un point, puis le nom de la méthode. Vous pouvez accéder directement aux méthodes de classe, comme indiqué ci-dessous:
Accounts.return_date
Pour accéder à cette méthode, vous n'avez pas besoin de créer un objet de la classe Accounts.
Cette phrase est utilisée pour donner des alias à des méthodes ou des variables globales. Les alias ne peuvent pas être définis dans le corps de la méthode. Même si la méthode est redéfinie, l'alias de la méthode conserve la définition actuelle de la méthode.
为编号的全局变量($1,$2,...)起别名是被禁止的。重写内置的全局变量可能会导致严重的问题。
alias 方法名 方法名 alias 全局变量 全局变量
alias foo bar alias $MATCH $&
在这里,我们已经为 bar 定义了别名为 foo,为 $& 定义了别名为 $MATCH。
此语句用于取消方法定义。undef 不能出现在方法主体内。
使用通过 undef 和 alias,接口类可以从父类独立修改,但请注意,在自身内部方法调用时,它可能会破坏程序。
undef 方法名
下面的示例取消名为 bar定义方法:
undef bar