variabili di ruby
Variabile è in possesso di tutti i dati possono essere utilizzati da qualsiasi programma memorizzato.
Rubino supporta cinque tipi di variabili.
- lettere maiuscole generalmente più bassi, che iniziano con un carattere di sottolineatura: Variabile (variabile).
-
$
All'inizio: una variabile globale (variabile globale). -
@
L'inizio: il (variabile di istanza) variabili di istanza. -
@@
Inizio: le variabili di classe (variabile di classe) variabile di classe sono condivisi in tutta la catena di ereditarietà - Inizia con una lettera maiuscola: Costante (Constant).
Hai nei precedenti capitoli di capire queste variabili, questo capitolo vi fornirà una spiegazione dettagliata di questi cinque tipi di variabili.
variabile globale Rubino
Le variabili globali iniziano con $. variabile globale non inizializzata èpariazero,l'opzione -w, viene generato un avviso.
Per l'assegnazione variabile globale cambierà stato globale, quindi non è consigliabile l'uso di variabili globali.
L'esempio seguente mostra l'uso di variabili globali.
#!/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
Qui, $ global_variable è una variabile globale. Questo produce i seguenti risultati:
Nota: In Ruby, è possibile inserire il carattere # davanti ad una variabile o costante, di accedere a qualsiasi variabile o valore costante.
全局变量在 Class1 中输出为 10 全局变量在 Class2 中输出为 10
variabili di istanza di Ruby
@ Variabili istanza per cominciare. variabile di istanza non inizializzata èpariazero,l'opzione -w, viene generato un avviso.
L'esempio seguente mostra l'uso delle variabili di istanza.
#! / Usr / bin / ruby classe Customer def inizializzare (id, nome, addr) @ Cust_id = id @ Cust_name = nome @ Cust_addr = addr fine display_details DEF () puts "ID cliente # @ cust_id" puts "Nome del cliente # @ cust_name" puts "indirizzo del cliente # @ cust_addr" fine fine # Crea cust1 Object = Customer.new ( "1", "John", "La saggezza Appartamenti, Ludhiya") Cust2 = Customer.new ( "2", "Poul", "strada New Empire, Khandala") # chiamata al metodo cust1.display_details () cust2.display_details ()
Qui, @ cust_id, @ cust_name e @cust_addr è una variabile di istanza. Questo produce i seguenti risultati:
Customer id 1 Customer name John Customer address Wisdom Apartments, Ludhiya Customer id 2 Customer name Poul Customer address New Empire road, Khandala
variabili di classe di Ruby
All'inizio del @@ variabili di classe e deve essere inizializzato prima di poter utilizzare nel corso della definizione del metodo.
Riferimento una classe variabile non inizializzata genererà un errore. variabili di classe definite nella classe o sottoclasse di moduli o sottomoduli possono essere condivisi.
Dopo aver utilizzato l'opzione -w, sovraccarico variabili di classe produrrà un avvertimento.
L'esempio seguente mostra l'uso di variabili di 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()
Qui, @@ no_of_customers è una variabile di classe. Questo produce i seguenti risultati:
numero totale di clienti: 1 numero totale di clienti: 2
variabili locali di Ruby
Le variabili locali iniziano con una lettera minuscola o una sottolineatura _. Lo scopo delle variabili locali della classe, il modulo, DEF o fare la fine corrispondente del tutore per le parentesi graffe a sinistra oa destra {}.
Quando si chiama un variabile locale non inizializzata, viene interpretato come chiamare un metodo senza parametri.
Non inizializzata assegnazione variabile locale può essere utilizzata anche come una dichiarazione di variabile. Variabile esisterà fino alla fine del dominio corrente finora. variabili locali del ciclo di vita determinato a Ruby parser.
Nell'esempio precedente, la variabile locale è l'id, nome e addr.
costanti di ruby
Costante con una lettera maiuscola. Definire le costanti all'interno della classe o il modulo si può accedere da all'interno della classe o del modulo, definita al di fuori di una classe o modulo costanti è possibile accedere a livello globale.
Le costanti non possono essere definite all'interno del metodo. Riferimento si verifica un errore costante non inizializzato. valori costanti inizializzati sarà già generare un avviso.
#! / Usr / bin / ruby # - * - Coding: UTF-8 - * - Esempio di classe VAR1 = 100 VAR2 = 200 DEF spettacolo mette "La prima costante è # {} VAR1" mette "La seconda costante è # {} VAR2" fine fine # Crea un oggetto Object = Example.new () object.show
Qui, VAR1 e VAR2 sono costanti. Questo produce i seguenti risultati:
Il primo valore costante di 100 La seconda costante è di 200
Rubino pseudo-variabile
Sono variabili speciali, con la comparsa di variabili locali, ma agisce come una costante. Non è possibile assegnare un valore a queste variabili.
- auto: oggetti destinatario del metodo corrente.
- vero: il rappresentante del vero valore.
- falso: Il valore rappresenta falso.
- nil: Rappresentante valore indefinito.
- __FILE__: Il nome attuale del file di origine.
- __LINE__: Attuale numero di riga file sorgente.