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

变量 Ruby

Une variable est un emplacement de stockage qui contient tout type de données pouvant être utilisé par n'importe quel programme.

Ruby supporte cinq types de variables.

  • En minuscules ou avec un trait de soulignement : Variable (Variable).

  • Commence par $ : Variable globale (Global variable).

  • Commence par @ : Variable d'exemple (Instance variable).

  • Commence par @@ : Variable de classe (Class variable). Les variables de classe sont partagées tout au long de la chaîne d'héritage.

  • En majuscules : Constante (Constant).

Vous avez une idée générale de ces variables dans les chapitres précédents. Ce chapitre vous expliquera en détail ces cinq types de variables.

Variables globales Ruby

Les variables globales commencent par $. La valeur de la variable globale non initialisée est nillors de l'utilisation -Un avertissement apparaît après l'option w.

Affecter une valeur à une variable globale change l'état global, donc il est déconseillé d'utiliser des variables globales.

L'exemple suivant montre l'utilisation des variables globales.

Exemple en ligne

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
$global_variable = 10
class Class1
  def print_global
      puts "Variable globale dans Class1 est affichée comme $global_variable"
  end
end
class Class2
  def print_global
      puts "Variable globale dans Class2 est affichée comme $global_variable"
  end
end
 
class1obj = Class1.new
class1obj.print_global
class2obj = Class2.new
class2obj.print_global

Dans ce cas, $global_variable est une variable globale. Cela produit le résultat suivant :

Remarque :Dans Ruby, vous pouvez accéder à la valeur de toute variable ou constante en plaçant le symbole # devant.

Variable globale dans Class1 est affichée dans 10
Variable globale dans Class2 est affichée dans 10

Variables d'exemple Ruby

Les variables d'exemple commencent par @. La valeur de la variable d'exemple non initialisée est nillors de l'utilisation -Un avertissement apparaît après l'option w.

L'exemple suivant montre l'utilisation des variables d'exemple.

Exemple en ligne

#!/usr/bin/ruby
 
class Customer
   def initialize(id, name, addr)
      @cust_id=id
      @cust_name=name
      @cust_addr=addr
   end
   def display_details()
      puts "ID du client @#cust_id"
      puts "Nom du client @#cust_name"
      puts "Adresse du client @#cust_addr"
    end
end
 
# 创建对象
cust1=Customer.new("1"John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2"Poul", "New Empire road, Khandala")
 
# Appel de la méthode
cust1.display_details()
cust2.display_details()

Dans ce cas, @cust_id, @cust_name et @cust_addr sont des variables d'exemple. Cela produit le résultat suivant :

Identifiant du client 1
Nom du client John
Adresse du client Wisdom Apartments, Ludhiya
Identifiant du client 2
Nom du client Poul
Adresse du client New Empire road, Khandala

Variables de classe Ruby

Les variables de classe commencent par @@ et doivent être initialisées avant d'être utilisées dans la définition de méthode.

Appel à une variable de classe non initialisée entraîne une erreur. Les variables de classe peuvent être utilisées en commun dans les sous-classes ou sous-modules du classeur ou du module où elles sont définies.

En utilisant -Après l'option w, le redéfinition des variables de classe génère un avertissement.

L'exemple suivant montre l'utilisation des variables de classe.

Exemple en ligne

#!/usr/bin/ruby
 
class Customer
   @@no_of_customers=0
   def initialize(id, name, addr)
      @cust_id=id
      @cust_name=name
      @cust_addr=addr
   end
   def display_details()
      puts "ID du client @#cust_id"
      puts "Nom du client @#cust_name"
      puts "Adresse du client @#cust_addr"
    end
    def total_no_of_customers()
       @@no_of_customers += 1
       puts "Nombre total de clients: #@@no_of_customers"
    end
end
 
# 创建对象
cust1=Customer.new("1"John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2"Poul", "New Empire road, Khandala")
 
# Appel de la méthode
cust1.total_no_of_customers()
cust2.total_no_of_customers()

Dans ce cas, @@no_of_customers est une variable de classe. Cela génère le résultat suivant :

Nombre total de clients: 1
Nombre total de clients: 2

Variables locales Ruby

Les variables locales commencent par une minuscule ou un trait de soulignement _. L'portée des variables locales va de class, module, def ou do à la fin correspondante ou de la accolade ouvrante {} à la fermeture {}.

Lorsque l'on appelle une variable locale non initialisée, elle est interprétée comme un appel à une méthode sans paramètres.

L'assignation d'une variable locale non initialisée peut également être considérée comme une déclaration de variable. La variable existera jusqu'à la fin du domaine actuel. La durée de vie des variables locales est déterminée lors de l'analyse du programme Ruby.

Dans l'exemple ci-dessus, les variables locales sont id, name et addr.

Constantes Ruby

Les constantes commencent toujours par une majuscule. Les constantes définies à l'intérieur d'une classe ou d'un module peuvent être accédées à l'intérieur de la classe ou du module, tandis que les constantes définies à l'extérieur peuvent être accédées globalement.

Les constantes ne peuvent pas être définies à l'intérieur d'une méthode. L'assignation d'une constante non initialisée génère une erreur. L'assignation d'une constante déjà initialisée génère un avertissement.

Exemple en ligne

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
class Example
   VAR1 = 100
   VAR2 = 200
   def show
       puts "值为第一个常量 #{VAR1"
       puts "值为第二个常量 #{VAR2"
   end
end
 
# 创建对象
object=Example.new()
object.show

在这里,VAR1 和 VAR2 常量是。这将产生以下结果:

值为第一个常量 100
值为第二个常量 200

伪变量 Ruby

变量特殊,外观局部变量,但行为常量。不能赋值任何。

  • self: 对象接收器方法当前。

  • true: 值代表 true。

  • false: 值代表 false。

  • nil: 值代表 undefined。

  • __FILE__: 名称当前源文件。

  • __LINE__: 编号当前行源文件。