variabel Ruby
Variabel memegang data dapat digunakan oleh setiap program yang tersimpan.
Ruby mendukung lima jenis variabel.
- huruf umumnya lebih rendah, dimulai dengan garis bawah: Variable (Variable).
-
$
Pada awal: variabel global (variabel Global). -
@
Awal: contoh variabel (variable Instance). -
@@
Awal: variabel Kelas (variabel Class) variabel Kelas dibagi di rantai warisan - Mulailah dengan huruf kapital: Constant (Constant).
Anda memiliki dalam bab-bab sebelumnya tentang pemahaman variabel-variabel ini, bab ini akan memberikan Anda penjelasan rinci dari lima jenis variabel.
variabel global Ruby
variabel global mulai dengan $. variabel global diinisiasi adalahnihil,pada opsi -w, peringatan dihasilkan.
Untuk variabel tugas global akan mengubah keadaan global, jadi kami tidak merekomendasikan penggunaan variabel global.
Contoh berikut menunjukkan penggunaan variabel global.
#!/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
Di sini, $ global_variable adalah variabel global. Ini menghasilkan hasil sebagai berikut:
Catatan: Di Ruby, Anda dapat menempatkan karakter # di depan variabel atau konstanta, untuk mengakses variabel atau nilai konstan.
全局变量在 Class1 中输出为 10 全局变量在 Class2 中输出为 10
Misalnya variabel Ruby
@ Variabel Instance untuk memulai. variabel contoh diinisiasi adalahnihil,pada opsi -w, peringatan dihasilkan.
Contoh berikut menunjukkan penggunaan variabel instance.
#! / Usr / bin / ruby class Customer def initialize (id, nama, addr) @ CUST_ID = id @ CUST_NAME = nama @ Cust_addr = addr akhir display_details def () puts "Pelanggan id # @ cust_id" puts "Nama Pelanggan # @ cust_name" puts "Alamat Pelanggan # @ cust_addr" akhir akhir # Buat Object cust1 = Customer.new ( "1", "John", "Kebijaksanaan Apartments, Ludhiya") cust2 = Customer.new ( "2", "Poul", "New Empire jalan, Khandala") # Metode Panggilan cust1.display_details () cust2.display_details ()
Di sini, @ cust_id, @ cust_name dan @cust_addr adalah variabel instansi. Ini menghasilkan hasil sebagai berikut:
Customer id 1 Customer name John Customer address Wisdom Apartments, Ludhiya Customer id 2 Customer name Poul Customer address New Empire road, Khandala
variabel kelas ruby
Pada awal @@ variabel kelas dan harus diinisialisasi sebelum Anda dapat menggunakan nanti dalam definisi metode.
Referensi variabel kelas diinisiasi akan menghasilkan kesalahan. variabel kelas didefinisikan dalam kelas atau subkelas dari modul atau sub-modul dapat dibagi.
Setelah menggunakan pilihan w, overloading variabel kelas akan menghasilkan peringatan.
Contoh berikut menunjukkan penggunaan variabel kelas.
#!/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()
Di sini, @@ no_of_customers adalah variabel kelas. Ini menghasilkan hasil sebagai berikut:
Total jumlah pelanggan: 1 Total jumlah pelanggan: 2
variabel lokal Ruby
variabel lokal dimulai dengan huruf kecil atau garis bawah _. Ruang lingkup variabel lokal dari kelas, modul, def atau melakukan sesuai akhir penjepit untuk kurung kurawal kiri atau kanan {}.
Ketika Anda memanggil variabel lokal diinisiasi, itu dianggap sebagai memanggil metode tanpa parameter.
Diinisiasi tugas variabel lokal juga dapat digunakan sebagai deklarasi variabel. Variabel akan ada sampai akhir domain saat ini sejauh ini. variabel lokal siklus hidup ditentukan pada Ruby parser.
Dalam contoh di atas, variabel lokal adalah id, nama dan alamat.
konstanta Ruby
Konstan dengan huruf besar. Mendefinisikan konstanta dalam kelas atau modul dapat diakses dari dalam kelas atau modul, didefinisikan luar konstanta kelas atau modul dapat diakses secara global.
Konstanta tidak dapat didefinisikan dalam metode. Referensi kesalahan konstan diinisiasi terjadi. Sudah nilai konstan diinisialisasi akan menghasilkan peringatan.
#! / Usr / bin / ruby # - * - Coding: UTF-8 - * - kelas Contoh Var1 = 100 Var2 = 200 def acara menempatkan "Konstanta pertama adalah # {var1}" menempatkan "Kedua konstan adalah # {var2}" akhir akhir # Buat objek Object = Example.new () object.show
Di sini, var1 dan var2 adalah konstanta. Ini menghasilkan hasil sebagai berikut:
Nilai konstan pertama 100 Kedua konstan 200
Ruby pseudo-variabel
Mereka adalah variabel khusus, dengan munculnya variabel lokal, tapi bertindak seperti konstan. Anda tidak dapat menetapkan nilai apapun untuk variabel tersebut.
- diri: objek penerima metode saat ini.
- benar: wakil dari nilai sebenarnya.
- salah: Nilai mewakili palsu.
- nil: nilai terdefinisi Perwakilan.
- __FILE__: Nama saat file sumber.
- __LINE__: File sumber nomor baris sekarang.