zmienne Ruby
Zmienna trzyma wszelkie dane mogą być wykorzystane przez każdego programu zapisanego.
Ruby obsługuje pięć typów zmiennych.
- Generalnie małe litery, rozpoczynające się od znaku podkreślenia: variable (zmienna).
-
$
Na początku: zmienna globalna (zmienna globalna). -
@
Początek: Zmienne instancji (zmienną instancji). -
@@
Początek: zmienne klasy (Class) zmienne zmienne klasy są dzielone w całym łańcuchu dziedziczenia - Start z dużej litery: stała (stała).
Masz w poprzednich rozdziałach o zrozumienie tych zmiennych, rozdział ten dostarczy Ci szczegółowe wyjaśnienie tych pięciu typów zmiennych.
zmienna globalna Ruby
Zmienne globalne zacząć $. zmienna globalna Niezainicjowany jestzerowa,w opcji -w, generowane jest ostrzeżenie.
Aby zmienna globalna cesja zmieni stan globalny, dlatego nie zaleca się stosowanie zmiennych globalnych.
Poniższy przykład pokazuje zastosowanie zmiennych globalnych.
#!/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
Tutaj $ global_variable jest zmienną globalną. To daje następujące wyniki:
Uwaga: W Ruby, można umieścić znak # przed zmiennej lub stałej, aby uzyskać dostęp do dowolnej zmiennej lub stałej wartości.
全局变量在 Class1 中输出为 10 全局变量在 Class2 中输出为 10
Ruby zmienne instancji
@ Zmiennej instancji, aby rozpocząć. Niezainicjowany zmienna instancji jestzerowa,w opcji -w, generowane jest ostrzeżenie.
Poniższy przykład pokazuje zastosowanie zmiennych instancji.
#! / Usr / bin / ruby Klasa klienta def initialize (id, nazwisko, adres) @ Cust_id id = @ CUST_NAME = nazwa @ Cust_addr = addr koniec def display_details () puts "id klienta # @ cust_id" puts "Nazwa klienta" # @ CUST_NAME puts "adres klienta # @ cust_addr" koniec koniec # Tworzenie cust1 Object = Customer.new ( "1", "Jan", "Mądrość Apartamenty, Ludhiya") cust2 = Customer.new ( "2", "Poul", "New Empire drogi, Khandala") # cust1.display_details metoda call () cust2.display_details ()
Tutaj @ cust_id @ CUST_NAME i @cust_addr jest zmienną instancji. To daje następujące wyniki:
Customer id 1 Customer name John Customer address Wisdom Apartments, Ludhiya Customer id 2 Customer name Poul Customer address New Empire road, Khandala
Zmienne klasy Ruby
Na początku @@ zmiennych klasy i musi być zainicjowany zanim będzie można później wykorzystać w definicji metody.
Odnośnik niezainicjowanej klasę zmiennej wygeneruje błąd. Zmienne klasy zdefiniowane w klasy lub podklasy modułów i submodułów mogą być udostępniane.
Po użyciu opcji -w, przeciążenia zmiennych klasy będzie produkować ostrzeżenie.
Poniższy przykład pokazuje zastosowanie zmiennych klasowych.
#!/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()
Tutaj @@ no_of_customers jest zmienną klasy. To daje następujące wyniki:
Łączna liczba klientów: 1 Łączna liczba klientów: 2
Ruby zmienne lokalne
Zmienne lokalne zaczynają się od małej litery lub znaku podkreślenia _. Zakres zmiennych lokalnych z klasy, modułu, def czy odpowiedni koniec nawiasu w lewo lub w prawo szelki klamrowych {}.
Podczas rozmowy telefonicznej niezainicjowanej zmiennej lokalnej, jest interpretowany jako wywołanie metody bez parametrów.
Przypisanie zmiennej niezainicjowanej lokalna może być również używany jako deklaracji zmiennej. Zmienna będzie istnieć do końca bieżącej domenie tej pory. Lifecycle zmienne lokalne określona w Ruby parsera.
W powyższym przykładzie, zmienna lokalna jest identyfikator, nazwa i addr.
stałe Ruby
Stała się wielką literą. Definiowanie stałych wewnątrz klasy lub modułu mogą być dostępne od wewnątrz klasy lub modułu, zdefiniowana poza klasy lub modułu stałe mogą być dostępne globalnie.
Stałe nie mogą być określone w metodzie. Odniesienia wystąpi niezainicjowany stały błąd. Już zainicjowane wartościami stałymi wygeneruje ostrzeżenie.
#! / Usr / bin / ruby # - * - Coding: UTF-8 - * - Przykład klasy VAR1 = 100 VAR2 = 200 def pokaż stawia "Pierwszym jest stała # {VAR1}" puts "Druga stała jest # {VAR2}" koniec koniec # Tworzenie obiektu Object = Example.new () object.show
Tutaj VAR1 i VAR2 są stałymi. To daje następujące wyniki:
Pierwszą stałą wartość 100 Druga stała wynosi 200
Ruby pseudo-zmiennej
Są to specjalne zmienne, o wyglądzie lokalne zmienne, ale działa jak stały. Nie można przypisać dowolną wartość tych zmiennych.
- samodzielne: obiekty odbiorca obecnej metody.
- prawda: przedstawiciel prawdziwej wartości.
- false: reprezentuje wartość false.
- nil: Przedstawiciel wartość niezdefiniowana.
- __FILE__: Aktualna nazwa pliku źródłowego.
- __LINE__: Aktualny numer linii plik źródłowy.