Ruby Variables
Une variable est un emplacement de stockage qui contient toute donnée pouvant être utilisée par n'importe quel programme.
Ruby prend en charge cinq types de variables.
- Commencent généralement par des lettres minuscules ou des traits de soulignement : variable (Variable).
$$ au début : variable globale (Variable globale).@@ au début : variable d'instance (Variable d'instance).@@@@ au début : variable de classe (Variable de classe). Les variables de classe sont partagées dans toute la chaîne d'héritage.- Commencent par une lettre majuscule : constante (Constante).
Vous avez déjà appris ces variables dans les chapitres précédents. Ce chapitre expliquera ces cinq types de variables en détail.
Variables globales Ruby
La valeur d'une variable globale non initialisée est nilnil, et l'utilisation de l'option -w produira un avertissement.
L'affectation d'une valeur à une variable globale modifie l'état global, donc les variables globales ne sont pas recommandées.
L'exemple suivant montre l'utilisation des variables globales.
Exemple
Essayez-le »
Ici, $global_variable est une variable globale. Cela produira le résultat suivant :
Remarque :En Ruby, vous pouvez accéder à la valeur de n'importe quelle variable ou constante en plaçant le caractère # avant la variable ou la constante.
全局变量在 Class1 中输出为 10 全局变量在 Class2 中输出为 10
Variables d'instance Ruby
Les variables d'instance commencent par @. La valeur d'une variable d'instance non initialisée est nilnil, et l'utilisation de l'option -w produira un avertissement.
L'exemple suivant montre l'utilisation des variables d'instance.
Exemple
Essayez-le »
Ici, @cust_id, @cust_name et @cust_addr sont des variables d'instance. Cela produira le résultat suivant :
Customer id 1 Customer name John Customer address Wisdom Apartments, Ludhiya Customer id 2 Customer name Poul Customer address New Empire road, Khandala
Variables de classe Ruby
Les variables de classe commencent par @@ et doivent être initialisées avant de pouvoir être utilisées dans les définitions de méthodes.
Référencer une variable de classe non initialisée produit une erreur. Les variables de classe peuvent être partagées dans les sous-classes ou sous-modules de la classe ou du module dans lesquels elles sont définies.
Après avoir utilisé l'option -w, redéfinir une variable de classe produira un avertissement.
L'exemple suivant montre l'utilisation des variables de classe.
Exemple
Essayez-le »
Ici, @@no_of_customers est une variable de classe. Cela produira le résultat suivant :
Total number of customers: 1 Total number of customers: 2
Variables locales en Ruby
Les variables locales commencent par une lettre minuscule ou un trait de soulignement _. La portée d'une variable locale s'étend de class, module, def ou do jusqu'au end correspondant, ou de l'accolade ouvrante à l'accolade fermante {}.
Lorsqu'une variable locale non initialisée est appelée, elle est interprétée comme l'appel d'une méthode sans arguments.
L'affectation d'une valeur à une variable locale non initialisée peut également être considérée comme une déclaration de variable. La variable persiste jusqu'à la fin de la portée actuelle. La durée de vie d'une variable locale est déterminée lorsque Ruby analyse le programme.
Dans l'exemple ci-dessus, les variables locales sont id, name et addr.
Constantes en Ruby
Les constantes commencent par une lettre majuscule. Les constantes définies à l'intérieur d'une classe ou d'un module sont accessibles depuis la classe ou le module, tandis que les constantes définies à l'extérieur d'une classe ou d'un module sont accessibles globalement.
Les constantes ne peuvent pas être définies à l'intérieur des méthodes. Référencer une constante non initialisée produit une erreur. Affecter une valeur à une constante déjà initialisée produit un avertissement.
Exemple
Essayez-le »
Ici, VAR1 et VAR2 sont des constantes. Cela produira le résultat suivant :
第一个常量的值为 100 第二个常量的值为 200
Pseudo-variables Ruby
Ce sont des variables spéciales qui ressemblent à des variables locales mais se comportent comme des constantes. Vous ne pouvez affecter aucune valeur à ces variables.
- self:L'objet récepteur de la méthode courante.
- true:Représente la valeur true.
- false:Représente la valeur false.
- nil:Représente la valeur indéfinie.
- __FILE__:Le nom du fichier source actuel.
- __LINE__:Le numéro de ligne de la ligne actuelle dans le fichier source.