Ruby | Tipos de Variables

Hay diferentes tipos de variables en Ruby:

  • Variables locales
  • Variables de instancia
  • Variables de clase
  • Variables globales

Cada variable en Ruby se declara usando un carácter especial al comienzo del nombre de la variable que se menciona en la siguiente tabla:

Símbolo Tipo de variable
[az] o _ Variable local
@ Instancia variable
@@ variable de clase
ps Variable global

Variables locales: el nombre de una variable local siempre comienza con una letra minúscula (az) o un guión bajo (_) . Estas variables son locales para la construcción del código en el que se declaran. Una variable local solo es accesible dentro del bloque de su inicialización. Las variables locales no están disponibles fuera del método. No es necesario inicializar las variables locales.

Ejemplo:

age = 10
_Age = 20

Variables de instancia: el nombre de una variable de instancia siempre comienza con un signo @ . Son similares a las variables de clase, pero sus valores son locales para instancias específicas de un objeto. Las variables de instancia están disponibles en todos los métodos para cualquier instancia u objeto especificado, es decir, las variables de instancia pueden cambiar de un objeto a otro. No es necesario inicializar las variables de instancia y la variable de instancia no inicializada siempre contiene un valor nulo .

Ejemplo:

#!/usr/bin/ruby
# Ruby program to illustrate 
# the Instance Variables
  
class Customer
      
 def initialize(id, name, addr)
       
# Instance Variables     
 @cust_id = id
 @cust_name = name
 @cust_addr = addr
 end
   
 # displaying result
 def display_details()
 puts "Customer id #@cust_id"
 puts "Customer name #@cust_name"
 puts "Customer address #@cust_addr"
 end
end
  
# Create Objects
cust1 = Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2 = Customer.new("2", "Poul", "New Empire road, Khandala")
  
# Call Methods
cust1.display_details()
cust2.display_details()

Producción:

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 clase: el nombre de una variable de clase siempre comienza con el signo @@ . Está disponible en diferentes objetos. Una variable de clase pertenece a la clase y es una característica de una clase. Deben inicializarse antes de su uso. Otra forma de pensar en las variables de clase es como variables globales dentro del contexto de una sola clase. Una variable de clase es compartida por todos los descendientes de la clase. Una variable de clase no inicializada dará como resultado un error.

Ejemplo:

#!/usr/bin/ruby
# Ruby program to illustrate 
# the Class  Variables
  
class Customer
      
# class variable
 @@no_of_customers = 0
   
 def initialize(id, name, addr)
       
# An instance Variable
 @cust_id = id
 @cust_name = name
 @cust_addr = addr
 end
  
# displaying result 
 def display_details()
 puts "Customer id #@cust_id"
 puts "Customer name #@cust_name"
 puts "Customer address #@cust_addr"
 end
   
 def total_no_of_customers()
       
# class variable
 @@no_of_customers += 1
 puts "Total number of customers: #@@no_of_customers"
    end
end
  
# Create Objects
cust1 = Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2 = Customer.new("2", "Poul", "New Empire road, Khandala")
  
# Call Methods
cust1.display_details()
cust1.total_no_of_customers()
cust2.display_details()
cust2.total_no_of_customers()

Producción:

Customer id 1
Customer name John
Customer address Wisdom Apartments, Ludhiya
Total number of customers: 1
Customer id 2
Customer name Poul
Customer address New Empire road, Khandala
Total number of customers: 2

Variables globales: el nombre de una variable global siempre comienza con $ . Las variables de clase no están disponibles entre clases. Si desea tener una sola variable, que esté disponible en todas las clases, debe definir una variable global. Su alcance es global, significa que se puede acceder desde cualquier parte de un programa. De forma predeterminada, una variable global no inicializada tiene un valor nulo y su uso puede hacer que los programas sean crípticos y complejos.

Ejemplo:

#!/usr/bin/ruby
# Ruby program to illustrate 
# the Global  Variables
  
#!/usr/bin/ruby
  
# global variable
$global_variable = 10
class Class1
 def print_global
 puts "Global variable in Class1 is #$global_variable"
 end
end
class Class2
 def print_global
 puts "Global variable in Class2 is #$global_variable"
 end
end
class1obj = Class1.new
class1obj.print_global
class2obj = Class2.new
class2obj.print_global

Producción:

Global variable in Class1 is 10
Global variable in Class2 is 10

Publicación traducida automáticamente

Artículo escrito por Shivi_Aggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *