Font: Tutorials Point

1. Variables globals

Les variables globals comencen per $. Les variables globals no inicialitzades tenen el valor nil i produeixen advertències amb l’opció -w.

L’assignació a variables globals altera l’estat global. No es recomana utilitzar variables globals. Fan críptics els programes.

Aquí teniu un exemple que mostra l’ús de la variable global.

#!/usr/bin/ruby

$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

Output

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

2. Variables d’instància

Les variables d’instància comencen per @. Les variables d’instància no inicialitzades tenen el valor nil i produeixen advertències amb l’opció -w.

Aquí teniu un exemple que mostra l’ús de variables d’instància.

#!/usr/bin/ruby

class Customer
   def initialize(id, name, addr)
      @cust_id = id
      @cust_name = name
      @cust_addr = addr
   end
   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()

Output

Customer id 1
Customer name John
Customer address Wisdom Apartments, Ludhiya
Customer id 2
Customer name Poul
Customer address New Empire road, Khandala

3. Variables de Classe

Les variables de classe comencen per @@ i deuen inicialitzar-se abans de ser usades en les definicions.

#!/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 "Customer id #@cust_id"
      puts "Customer name #@cust_name"
      puts "Customer address #@cust_addr"
   end
   def total_no_of_customers()
      @@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.total_no_of_customers()
cust2.total_no_of_customers()

Output

Total number of customers: 1
Total number of customers: 2

4. Variables Locals

Les variables locals comencen amb una lletra minúscula o _. L’abast d’una variable local oscil·la entre la classe, el mòdul, la def, o la realització a l’extrem corresponent o de l’obertura d’un bloc al seu tancament {}.

Quan es fa referència a una variable local no inicialitzada, s’interpreta com una trucada a un mètode que no té arguments.

L’assignació a variables locals no inicialitzades també serveix de declaració de variable. Les variables comencen a existir fins que s’aconsegueix el final de l’abast actual. La vida útil de les variables locals es determina quan Ruby analitza el programa.

5. Constants

Les constants comencen amb una lletra majúscula. Les constants definides dins d’una classe o mòdul es poden accedir des d’aquesta classe o mòdul, i les que es defineixen fora d’una classe o mòdul es poden accedir globalment.

Les constants poden no estar definides dins dels mètodes. La referència a una constant no inicialitzada produeix un error. Fer una assignació a una constant ja inicialitzada produeix un avís.

#!/usr/bin/ruby

class Example
   VAR1 = 100
   VAR2 = 200
   def show
      puts "Value of first Constant is #{VAR1}"
      puts "Value of second Constant is #{VAR2}"
   end
end

# Create Objects
object = Example.new()
object.show

Output

Value of first Constant is 100
Value of second Constant is 200

6. Pseudo-Variables

Són variables especials que tenen l’aparença de variables locals però es comporten com a constants. No podeu assignar cap valor a aquestes variables.

  • auto - L’objecte receptor del mètode actual.
  • true - Valor que representa veritable.
  • false - Valor que representa fals.
  • nil - Valor que representa sense definir.
  • __FILE__ - El nom del fitxer font actual.
  • __LINE__ - El número de línia actual al fitxer font.