Latest web development tutorials

variáveis ​​de ruby

Variável segurando quaisquer dados pode ser usado por qualquer programa armazenado.

Rubi suporta cinco tipos de variáveis.

  • Geralmente letras minúsculas, começando com um sublinhado: Variable (variável).
  • $ No início: uma variável global (variável Global).
  • @ O início: as variáveis de instância (variável de instância).
  • @@ Beginning: (Classe variável) Variáveis de classe Classe variáveis são compartilhadas por toda a cadeia de herança
  • Comece com uma letra maiúscula: Constante (Constant).

Você tem em capítulos anteriores sobre a compreensão dessas variáveis, este capítulo irá fornecer-lhe uma explicação detalhada destes cinco tipos de variáveis.

Rubi variável global

As variáveis ​​globais começar com $. Não inicializado variável global énulo,na opção -w, um aviso é gerado.

Para a atribuição de variável global mudará de estado global, por isso não recomendamos o uso de variáveis ​​globais.

O exemplo seguinte mostra o uso de variáveis ​​globais.

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$global_variable = 10
class Class1
  def print_global
      puts "全局变量在 Class1 中输出为 #$global_variable"
  end
end
class Class2
  def print_global
      puts "全局变量在 Class2 中输出为 #$global_variable"
  end
end

class1obj = Class1.new
class1obj.print_global
class2obj = Class2.new
class2obj.print_global

Aqui, $ global_variable é uma variável global. Isto produz os seguintes resultados:

Nota: Em Ruby, você pode colocar o caractere # na frente de uma variável ou constante, para acessar qualquer variável ou valor constante.

全局变量在 Class1 中输出为 10
全局变量在 Class2 中输出为 10

variáveis ​​de instância de Ruby

@ Variável de instância, para começar. variável de instância não inicializada énulo,na opção -w, um aviso é gerado.

O exemplo a seguir mostra o uso de variáveis ​​de instância.

#! / Usr / bin / ruby

classe Customer
   def inicializar (id, nome, endereço)
      @ Cust_id = id
      @ Cust_name = name
      @ Cust_addr = addr
   final
   display_details def ()
      puts "id Cliente # @ cust_id"
      puts "Nome do cliente # @ cust_name"
      puts "Endereço do Cliente # @ cust_addr"
    final
final

# Criar cust1 Object = Customer.new ( "1", "John", "sabedoria Apartments, Ludhiya")
Cust2 = Customer.new ( "2", "Poul", "Novo Império estrada, Khandala")

# cust1.display_details método call ()
cust2.display_details ()

Aqui, @ cust_id, @ cust_name e @cust_addr é uma variável de instância. Isto produz os seguintes resultados:

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

variáveis ​​de classe de Ruby

No início de @@ variáveis ​​de classe e deve ser inicializado antes de poder usar mais tarde na definição do método.

Referência a uma classe variável não inicializada irá gerar um erro. variáveis ​​de classe definidos na classe ou subclasse de módulos ou sub-módulos podem ser compartilhados.

Depois de usar a opção -w, sobrecarregando variáveis ​​de classe irá produzir um aviso.

O exemplo seguinte mostra o uso de variáveis ​​de classe.

#!/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

# 创建对象
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, Khandala")

# 调用方法
cust1.total_no_of_customers()
cust2.total_no_of_customers()

Aqui, @@ no_of_customers é uma variável de classe. Isto produz os seguintes resultados:

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

Rubi variáveis ​​locais

As variáveis ​​locais começam com uma letra minúscula ou um sublinhado _. O escopo de variáveis ​​locais de classe, módulo, def ou fazer a extremidade correspondente da chave para as chaves esquerda ou direita {}.

Quando você chamar uma variável local não inicializada, ele é interpretado como chamar um método sem parâmetros.

atribuição de variável local não inicializada também pode ser usado como uma declaração de variável. Variável existirá até que a extremidade do domínio corrente medida. variáveis ​​locais do ciclo de vida determinado pelo analisador de Ruby.

No exemplo acima, a variável local é o id, nome e endereço.

As constantes de rubi

Constante com uma letra maiúscula. Definir constantes dentro da classe ou módulo podem ser acessados ​​de dentro da classe ou módulo, definidas fora de uma classe ou módulo de constantes podem ser acessados ​​globalmente.

Constantes não pode ser definida dentro do método. Referência a um erro constante não inicializada ocorre. valores constantes inicializados já irá gerar um aviso.

#! / Usr / bin / ruby
# - * - Coding: UTF-8 - * -

Exemplo classe
   Q1 = 100
   VAR2 = 200
   show de def
       coloca "A primeira constante é # {VAR1}"
       coloca "A segunda constante é # {} VAR2"
   final
final

# Criar objeto Object = Example.new ()
object.show

Aqui, VAR1 e VAR2 são constantes. Isto produz os seguintes resultados:

O primeiro valor constante de 100
A segunda constante é 200

Rubi pseudo-variável

Eles são variáveis ​​especiais, com a aparência de variáveis ​​locais, mas actua como uma constante. Você não pode atribuir qualquer valor a estas variáveis.

  • self: objetos receptores do método atual.
  • verdade: o representante do verdadeiro valor.
  • false: O valor representa falsa.
  • nil: valor indefinido Representante.
  • __FILE__: O nome atual do arquivo de origem.
  • __LINE__: Atual número de linha arquivo de origem.