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

Variáveis no Ruby

Variáveis são locais de armazenamento que contêm dados que podem ser usados por qualquer programa.

O Ruby suporta cinco tipos de variáveis.

  • Geralmente começam com letras minúsculas ou underline: Variáveis (Variable).

  • Começam com $: Variáveis globais (Global variable).

  • Começam com @: Variáveis de exemplo (Instance variable).

  • Começam com @@: Variáveis de classe (Class variable). As variáveis de classe são compartilhadas em toda a cadeia de herança.

  • Começam com letras maiúsculas: Constantes (Constantes).

Você já teve uma ideia geral dessas variáveis nos capítulos anteriores. Este capítulo explicará detalhadamente esses cinco tipos de variáveis.

Variáveis globais Ruby

As variáveis globais começam com $. O valor de uma variável global não inicializada é nilao usar -A opção w, após isso, gerará um aviso.

Atribuir valores a variáveis globais altera o estado global, portanto, não é recomendado usar variáveis globais.

O exemplo a seguir mostra o uso de variáveis globais.

Exemplo Online

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
$global_variable = 10
class Class1
  def print_global
      puts "Variáveis globais no Class1 e é exibido como "#$global_variable"
  end
end
class Class2
  def print_global
      puts "Variáveis globais no Class2 e é exibido como "#$global_variable"
  end
end
 
class1obj = Class1.new
class1obj.print_global
class2obj = Class2.new
class2obj.print_global

Aqui, $global_variable é uma variável global. Isso resultará na seguinte saída:

Atenção:No Ruby, você pode acessar o valor de qualquer variável ou constante colocando o caractere # antes dela.

Variáveis globais no Class1 e é exibido como 10
Variáveis globais no Class2 e é exibido como 10

Variáveis de exemplo Ruby

As variáveis de exemplo começam com @. O valor de uma variável de exemplo não inicializada é nilao usar -A opção w, após isso, gerará um aviso.

O exemplo a seguir mostra o uso das variáveis de exemplo.

Exemplo Online

#!/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 do cliente @cust_id"
      puts "Nome do cliente @cust_name"
      puts "Endereço do cliente @cust_addr"
    end
end
 
# Criar objeto
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, Khandala")
 
# Chama o método
cust1.display_details()
cust2.display_details()

Aqui, @cust_id, @cust_name e @cust_addr são variáveis de exemplo. Isso resultará na seguinte saída:

ID do cliente 1
Nome do cliente John
Endereço do cliente Wisdom Apartments, Ludhiya
ID do cliente 2
Nome do cliente Poul
Endereço do cliente New Empire road, Khandala

Variáveis de classe Ruby

As variáveis de classe começam com @@ e devem ser inicializadas antes de poderem ser usadas em definições de métodos.

Referência a uma variável de classe não inicializada causará um erro. As variáveis de classe podem ser usadas em subclasses ou submódulos do módulo ou classe que as definiu.

ao usar -A opção w, após a sobrecarga da variável de classe, gerará um aviso.

O exemplo a seguir mostra o uso de variáveis de classe.

Exemplo Online

#!/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 do cliente @cust_id"
      puts "Nome do cliente @cust_name"
      puts "Endereço do cliente @cust_addr"
    end
    def total_no_of_customers()
       @@no_of_customers += 1
       puts "Número total de clientes: #@@no_of_customers"
    end
end
 
# Criar objeto
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, Khandala")
 
# Chama o método
cust1.total_no_of_customers()
cust2.total_no_of_customers()

Aqui, @@no_of_customers é uma variável de classe. Isso resultará em:

Número total de clientes: 1
Número total de clientes: 2

Variáveis Locais Ruby

Variáveis locais começam com letras minúsculas ou sublinhado _. O escopo das variáveis locais vai de class, module, def ou do até o final correspondente ou do esquerdo ao direito {}.

Quando uma variável local não inicializada é chamada, ela é interpretada como uma chamada de método sem parâmetros.

A atribuição a uma variável local não inicializada também pode ser considerada uma declaração de variável. A variável existirá até o final do domínio atual. A vida útil da variável local é determinada durante a análise do programa Ruby.

Neste exemplo, as variáveis locais são id, name e addr.

Constantes Ruby

Constantes começam com letras maiúsculas. Constantes definidas dentro de classes ou módulos podem ser acessadas internamente, enquanto as definidas fora podem ser acessadas globalmente.

Constantes não podem ser definidas dentro de métodos. A referência a uma constante não inicializada causará um erro. A atribuição a uma constante já inicializada gerará um aviso.

Exemplo Online

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
class Example
   VAR1 = 100
   VAR2 = 200
   def show
       puts "O valor da primeira constante é #{VAR1"
       puts "O valor da segunda constante é #{VAR2"
   end
end
 
# Criar objeto
object=Example.new()
object.show

Aqui, VAR1 e VAR2 É uma constante. Isso produz o seguinte resultado:

O valor da primeira constante é 100
O valor da segunda constante é 200

Variáveis Pseudo no Ruby

São variáveis especiais que têm a aparência de variáveis locais, mas se comportam como constantes. Você não pode atribuir nenhum valor a essas variáveis.

  • self: Objeto receptor do método atual.

  • true: Representa o valor true.

  • false: Representa o valor false.

  • nil: Representa o valor undefined.

  • __FILE__: Nome do arquivo de origem atual.

  • __LINE__: Número da linha atual no arquivo de origem.