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.