metode Ruby
Metode ruby mirip dengan fungsi bahasa pemrograman lainnya. Metode ruby untuk bundling satu atau lebih pernyataan duplikat ke dalam satu unit.
Nama metode harus dimulai dengan huruf kecil. Jika Anda berada di huruf besar sebagai awal dari nama metode, Ruby mungkin akan menggunakannya sebagai konstan, sehingga tidak benar mengurai menelepon.
Sebelum memanggil metode harus didefinisikan jika tidak, Ruby akan menghasilkan terdefinisi pengecualian metode panggilan.
tatabahasa
def method_name [( [arg [= default]]...[, * arg [, &expr ]])] expr.. end
Jadi, Anda dapat menentukan metode sederhana, sebagai berikut:
def method_name expr.. end
Anda dapat mendefinisikan sebuah metode untuk menerima parameter, sebagai berikut:
def method_name (var1, var2) expr.. end
Anda dapat mengatur nilai default untuk parameter, parameter tidak diperlukan untuk lulus nilai default jika metode panggilan:
def method_name (var1=value1, var2=value2) expr.. end
Bila Anda ingin memanggil metode, hanya menggunakan nama metode, seperti yang ditunjukkan di bawah ini:
method_name
Namun, ketika Anda memanggil metode dengan parameter, parameter yang harus Anda ambil ketika menulis nama metode, misalnya:
method_name 25, 30
Metode menggunakan parameter kelemahan terbesar adalah kebutuhan untuk mengingat jumlah parameter saat memanggil metode. Misalnya, jika Anda adalah salah satu yang menerima metode tiga parameter hanya melewati dua argumen, Ruby akan menampilkan kesalahan.
contoh
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test(a1="Ruby", a2="Perl") puts "编程语言为 #{a1}" puts "编程语言为 #{a2}" end test "C", "C++" test
Jalankan contoh di atas output:
编程语言为 C 编程语言为 C++ 编程语言为 Ruby 编程语言为 Perl
Nilai kembali dari metode
Ruby setiap metode mengembalikan nilai default. Nilai ini adalah nilai yang dikembalikan oleh pernyataan terakhir. Sebagai contoh:
def test i = 100 j = 10 k = 0 end
Saat memanggil metode ini akan kembali deklarasi akhir dari k variabel.
pernyataan kembaliRuby
Ruby di pernyataankembalidigunakan untuk mengembalikan satu atau lebih nilai dari sebuah metode ruby.
tatabahasa
return [expr[`,' expr...]]
Jika lebih dari dua ekspresi diberikan array yang berisi nilai-nilai ini akan menjadi nilai kembali. Jika tidak ada ekspresi yang diberikan, nil akan menjadi nilai kembali.
contoh
return 或 return 12 或 return 1,2,3
Perhatikan contoh berikut:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test i = 100 j = 200 k = 300 return i, j, k end var = test puts var
Jalankan contoh di atas output:
100 200 300
variabel jumlah argumen
Katakanlah Anda menyatakan metode yang mengambil dua argumen, ketika Anda memanggil metode ini, Anda juga harus lulus dua parameter.
Namun, Ruby memungkinkan Anda untuk menyatakan sejumlah variabel parameter. Mari kita lihat contoh berikut:
#!/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"
Dalam kode ini, Anda telah menyatakan metode sampel, menerima tes parameter. Namun, parameter ini adalah parameter variabel. Ini berarti bahwa parameter dapat diberikan dengan nomor yang berbeda dari variabel. Jalankan contoh di atas output:
参数个数为 3 参数值为 Zara 参数值为 6 参数值为 F 参数个数为 4 参数值为 Mac 参数值为 36 参数值为 M 参数值为 MCA
metode kelas
Ketika eksternal, metode metode yang didefinisikan dalam standar kelas ditandai sebagaipribadi.Di sisi lain, jika metode yang didefinisikan di kelas, default ditandai sebagai publik.
Metode default visibilitas dan tagpribadidapat diubah melalui modul (Modul) didepan umumatauswasta.
Bila Anda ingin mengakses metode kelas, Anda harus terlebih dahulu instantiate kelas. Kemudian, menggunakan objek, Anda dapat mengakses setiap anggota kelas.
Ruby menyediakan cara untuk mengakses tanpa metode Instansiasi. Mari kita lihat bagaimana cara mendeklarasikan dan mengakses metode kelas:
class Accounts def reading_charge end def Accounts.return_date end end
Kami sudah tahu bagaimana pernyataan metode RETURN_DATE. Hal ini setelah nama kelas diikuti oleh sebuah titik, diikuti dengan nama metode setelah dot untuk deklarasi. Anda dapat langsung mengakses metode kelas sebagai berikut:
Accounts.return_date
Untuk mengakses metode ini, Anda tidak perlu membuat Account kelas objek.
Pernyataan aliasRuby
Pernyataan ini digunakan sebagai metode atau variabel global dari alias. Alias tidak dapat didefinisikan dalam metode tubuh. Bahkan jika metode ini diganti, metode alias juga mempertahankan definisi saat metode ini.
Jumlah variabel global ($ 1, $ 2, ...) dari alias dilarang. Menulis ulang built-in variabel global dapat menyebabkan masalah serius.
tatabahasa
alias 方法名 方法名 alias 全局变量 全局变量
contoh
alias foo bar alias $MATCH $&
Di sini, kita telah mendefinisikan alias untuk foo ke bar, untuk menentukan alias untuk $ & $ MATCH.
PernyataanRubyundef
Pernyataan ini digunakan untuk membatalkan definisi metode.undeftidak dapat muncul dalam metode tubuh.
Dengan menggunakanundefdanalias,antarmuka kelas dapat dimodifikasi secara independen dari kelas induk, tetapi harap dicatat bahwa ketika metode internal sendiri menyebut, hal itu dapat merusak program.
tatabahasa
undef 方法名
contoh
Contoh-contoh berikut dibatalkan bernama definisi metodebar:
undef bar