Kaedah Ruby
Kaedah Ruby adalah serupa dengan fungsi dalam bahasa pengaturcaraan lain. Kaedah Ruby untuk menggabungkan satu atau lebih pernyataan berulang ke dalam unit.
Nama kaedah hendaklah bermula dengan huruf kecil. Jika anda memulakan nama kaedah dengan huruf besar, Ruby mungkin menganggapnya sebagai pemalar, menyebabkan panggilan dihuraikan secara tidak betul.
Kaedah hendaklah ditakrifkan sebelum membuat panggilan, jika tidak, Ruby akan menimbulkan pengecualian panggilan kaedah yang tidak ditentukan.
Syntax
def method_name [( [arg [= default]]...[, * arg [, &expr ]])] expr.. end
Jadi, anda boleh mentakrifkan kaedah mudah seperti ini:
def method_name expr.. end
Anda boleh menentukan kaedah yang menerima parameter seperti ini:
rreeeAnda boleh menetapkan nilai lalai untuk parameter, yang akan digunakan jika parameter yang diperlukan tidak diluluskan semasa memanggil kaedah:
def method_name (var1, var2) expr.. end
Apabila anda ingin memanggil kaedah, hanya gunakan nama kaedah, seperti yang ditunjukkan di bawah:
def method_name (var1=value1, var2=value2) expr.. end
Walau bagaimanapun, apabila anda memanggil kaedah dengan parameter, anda juga perlu membawa parameter semasa menulis nama kaedah, contohnya:
method_name
Kelemahan terbesar menggunakan kaedah dengan parameter ialah apabila memanggil kaedah Perlu ingat bilangan parameter. Sebagai contoh, jika anda menghantar hanya dua parameter kepada kaedah yang menerima tiga parameter, Ruby akan memaparkan ralat.
Instance
method_name 25, 30
Contoh di atas menjalankan hasil output ialah:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test(a1="Ruby", a2="Perl") puts "编程语言为 #{a1}" puts "编程语言为 #{a2}" end test "C", "C++" test
Nilai pulangan daripada kaedah
Ruby Every kaedah mengembalikan nilai secara lalai. Nilai yang dikembalikan ialah nilai pernyataan terakhir. Contohnya:
编程语言为 C 编程语言为 C++ 编程语言为 Ruby 编程语言为 Perl
Apabila kaedah ini dipanggil, pembolehubah yang diisytiharkan terakhir k akan dikembalikan.
Ruby return Pernyataan
Penyataan return dalam Ruby digunakan untuk mengembalikan satu atau lebih nilai daripada kaedah Ruby.
Sintaks
def test i = 100 j = 10 k = 0 end
Jika lebih daripada dua ungkapan diberikan, tatasusunan yang mengandungi nilai tersebut akan menjadi nilai pulangan. Jika tiada ungkapan diberikan, nil akan menjadi nilai pulangan.
Contoh
return [expr[`,' expr...]]
Lihat contoh berikut:
return 或 return 12 或 return 1,2,3
Hasil keluaran contoh di atas ialah:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test i = 100 j = 200 k = 300 return i, j, k end var = test puts var
Bilangan parameter berubah
Katakan anda mengisytiharkan kaedah dengan dua parameter Apabila anda memanggil kaedah, anda juga perlu lulus dua parameter.
Walau bagaimanapun, Ruby membenarkan anda mengisytiharkan kaedah dengan bilangan parameter yang berubah-ubah. Mari lihat contoh berikut:
100 200 300
Dalam kod ini, anda telah mengisytiharkan sampel kaedah yang menerima ujian parameter. Walau bagaimanapun, parameter ini adalah parameter berubah. Ini bermakna bahawa parameter boleh mengambil bilangan pembolehubah yang berbeza. Hasil keluaran contoh di atas ialah:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def sample (*test) puts "参数个数为 #{test.length}" for i in 0...test.length puts "参数值为 #{test[i]}" end end sample "Zara", "6", "F" sample "Mac", "36", "M", "MCA"
Kaedah kelas
Apabila kaedah ditakrifkan di luar kelas, kaedah ditandakan peribadi secara lalai. Sebaliknya, jika kaedah ditakrifkan dalam kelas, ia ditandakan awam secara lalai. Keterlihatan lalai kaedah
dan teg peribadi boleh ditukar melalui modul awam atau peribadi modul.
Apabila anda ingin mengakses kaedah kelas, anda perlu membuat seketika kelas tersebut. Kemudian, menggunakan objek, anda boleh mengakses mana-mana ahli kelas.
Ruby menyediakan cara untuk mengakses kaedah tanpa instantiasi. Mari lihat cara mengisytiharkan dan mengakses kaedah kelas:
参数个数为 3 参数值为 Zara 参数值为 6 参数值为 F 参数个数为 4 参数值为 Mac 参数值为 36 参数值为 M 参数值为 MCA
Kita sudah tahu bagaimana kaedah return_date diisytiharkan. Ia diisytiharkan dengan mengikut nama kelas dengan noktah, diikuti dengan nama kaedah. Anda boleh mengakses kaedah kelas secara langsung seperti berikut:
class Accounts def reading_charge end def Accounts.return_date end end
Untuk mengakses kaedah ini, anda tidak perlu mencipta objek Akaun kelas.
Ruby alias pernyataan
Pernyataan ini digunakan untuk alias kaedah atau pembolehubah global. Alias tidak boleh ditakrifkan dalam badan kaedah. Alias kaedah mengekalkan definisi semasa kaedah walaupun kaedah itu ditindih.
Aliasing pembolehubah global bernombor ($1, $2,...) adalah dilarang. Mengatasi pembolehubah global terbina dalam boleh menyebabkan masalah yang serius.
Sintaks
Accounts.return_date
Contoh
alias 方法名 方法名 alias 全局变量 全局变量
Di sini, kami telah mentakrifkan alias untuk bar sebagai foo dan alias untuk $& sebagai $MATCH.
Ruby undef Pernyataan
Pernyataan ini digunakan untuk menyahtakrifkan kaedah. undef tidak boleh muncul dalam badan kaedah.
Dengan menggunakan undef dan alias, antara muka kelas boleh diubah suai secara bebas daripada kelas induk, tetapi sila ambil perhatian bahawa ia mungkin memecahkan atur cara semasa memanggil kaedah dalam dirinya sendiri.
Sintaks
alias foo bar alias $MATCH $&
Contoh
Contoh berikut membatalkan takrif kaedah bernama bar:
undef 方法名