Méthodes Ruby


Les méthodes Ruby sont similaires aux fonctions d'autres langages de programmation. Méthode Ruby pour regrouper une ou plusieurs instructions répétées dans une unité.

Les noms de méthodes doivent commencer par une lettre minuscule. Si vous commencez un nom de méthode par une lettre majuscule, Ruby peut le traiter comme une constante, ce qui entraîne une analyse incorrecte de l'appel.

Les méthodes doivent être définies avant l'appel, sinon Ruby déclenchera une exception d'appel de méthode non définie.

Syntaxe

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

Donc, vous pouvez définir une méthode simple comme celle-ci :

def method_name 
   expr..
end

Vous pouvez définir une méthode qui accepte des paramètres comme celui-ci :

def method_name (var1, var2)
   expr..
end

Vous pouvez définir valeurs par défaut pour les paramètres, qui seront utilisées si les paramètres requis ne sont pas transmis lors de l'appel de la méthode :

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

Lorsque vous souhaitez appeler une méthode, utilisez simplement le nom de la méthode, comme indiqué ci-dessous :

method_name

Cependant, lorsque vous appelez une méthode avec des paramètres, vous devez également apporter les paramètres lors de l'écriture du nom de la méthode, par exemple :

method_name 25, 30

Le plus gros inconvénient de l'utilisation de méthodes avec des paramètres est lors de l'appel de la méthode Il faut se rappeler du nombre de paramètres. Par exemple, si vous transmettez uniquement deux paramètres à une méthode qui en accepte trois, Ruby affichera une erreur.

Instance

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def test(a1="Ruby", a2="Perl")
   puts "编程语言为 #{a1}"
   puts "编程语言为 #{a2}"
end
test "C", "C++"
test


L'exemple ci-dessus exécutant le résultat de sortie est :

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

Valeur de retour de la méthode

Ruby Every La méthode renvoie une valeur par défaut. La valeur renvoyée est la valeur de la dernière instruction. Par exemple :

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

Lorsque cette méthode est appelée, la dernière variable déclarée k sera renvoyée. Instruction

Ruby return

L'instruction return dans Ruby est utilisée pour renvoyer une ou plusieurs valeurs d'une méthode Ruby.

Syntaxe

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

Si plus de deux expressions sont données, un tableau contenant ces valeurs sera la valeur de retour. Si aucune expression n’est donnée, nil sera la valeur de retour.

Exemple

return

或

return 12

或

return 1,2,3

Regardez l'exemple suivant :

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def test
   i = 100
   j = 200
   k = 300
return i, j, k
end
var = test
puts var


Le résultat de sortie de l'exemple ci-dessus est :

100
200
300

Nombre variable de paramètres

Supposons que vous déclariez une méthode avec deux paramètres. Lorsque vous appelez la méthode, vous devez également transmettre deux paramètres.

Cependant, Ruby permet de déclarer des méthodes avec un nombre variable de paramètres. Regardons l'exemple suivant :

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def sample (*test)
   puts "参数个数为 #{test.length}"
   for i in 0...test.length
      puts "参数值为 #{test[i]}"
   end
end
sample "Zara", "6", "F"
sample "Mac", "36", "M", "MCA"


Dans ce code, vous avez déclaré un exemple de méthode qui accepte un paramètre test. Cependant, ce paramètre est un paramètre variable. Cela signifie que les paramètres peuvent prendre différents nombres de variables. Le résultat de sortie de l'exemple ci-dessus est :

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

Méthode de classe

Lorsque la méthode est définie en dehors de la classe, la méthode est marquée privée par défaut. En revanche, si la méthode est définie dans une classe, elle est marquée publique par défaut. La visibilité par défaut des méthodes

et de la balise private peut être modifiée via le module public ou private du module.

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 à n'importe quel membre de la classe.

Ruby fournit un moyen d'accéder aux méthodes sans instanciation. Voyons comment déclarer et accéder aux méthodes de classe :

class Accounts
   def reading_charge
   end
   def Accounts.return_date
   end
end

Nous savons déjà comment la méthode return_date est déclarée. Il est déclaré en faisant suivre le nom de la classe d'un point, suivi du nom de la méthode. Vous pouvez accéder directement à la méthode de classe comme suit :

Accounts.return_date

Pour accéder à cette méthode, vous n'avez pas besoin de créer un objet de classe Accounts.

Instruction Ruby alias

Cette instruction est utilisée pour alias une méthode ou une variable globale. Les alias ne peuvent pas être définis dans un corps de méthode. L'alias d'une méthode conserve la définition actuelle de la méthode même si la méthode est remplacée.

Les alias de variables globales numérotées ($1, $2,...) sont interdits. Le remplacement des variables globales intégrées peut entraîner de graves problèmes.

Syntaxe

alias 方法名 方法名
alias 全局变量 全局变量

Exemple

alias foo bar
alias $MATCH $&

Ici, nous avons défini un alias pour bar comme foo et un alias pour $& comme $MATCH.

Instruction Ruby undef

Cette instruction est utilisée pour annuler la définition d'une méthode. undef ne peut pas apparaître dans le corps de la méthode.

En utilisant undef et alias, l'interface d'une classe peut être modifiée indépendamment de la classe parent, mais veuillez noter que cela peut casser le programme lors de l'appel de méthodes en lui-même.

Syntaxe

undef 方法名

Exemple

L'exemple suivant annule la définition de méthode nommée bar :

undef bar