class
adalah kata kunci yang digunakan untuk mendefinisikan kelas baru. Karena ini adalah kata kunci yang dipesan, Anda tidak dapat menggunakannya sebagai nama variabel. Anda tidak dapat menggunakan kata kunci Ruby apa pun sebagai nama variabel, jadi Anda tidak akan dapat memiliki variabel bernama def
atau module
atau if
atau end
, dll - class
tidak berbeda.
Misalnya, pertimbangkan hal berikut:
def show_methods(class)
puts Object.const_get(class).methods.inspect
end
show_methods "Kernel"
Mencoba menjalankan ini menghasilkan kesalahan, karena Anda tidak dapat menggunakan class
sebagai nama variabel.
test.rb:1: syntax error, unexpected kCLASS, expecting ')'
def show_methods(class)
^
test.rb:2: syntax error, unexpected ')'
puts Object.const_get(class).methods.inspect
Untuk memperbaikinya, kami akan menggunakan pengenal klass
sebagai gantinya. Ini tidak istimewa, tetapi secara konvensional digunakan sebagai nama variabel saat Anda berurusan dengan nama kelas atau kelas. Secara fonetik sama, tetapi karena ini bukan kata kunci yang dipesan, Ruby tidak memiliki masalah dengannya.
def show_methods(klass)
puts Object.const_get(klass).methods.inspect
end
show_methods "Kernel"
Output, seperti yang diharapkan
["method", "inspect", "name", "public_class_method", "chop!"...
Anda dapat menggunakan nama variabel (tidak dicadangkan) di sana, tetapi komunitas telah menggunakannya klass
. Itu tidak memiliki sihir khusus - itu hanya berarti "Saya ingin menggunakan nama 'kelas' di sini, tetapi saya tidak bisa, karena ini adalah kata kunci yang dipesan".
Di samping catatan, karena Anda salah mengetik beberapa kali, perlu diperhatikan bahwa di Ruby, kasus penting. Token yang dimulai dengan huruf kapital adalah konstanta. Melalui beliung :
Nama konstanta dimulai dengan huruf besar diikuti dengan karakter nama. Nama kelas dan nama modul adalah konstanta, dan mengikuti konvensi penamaan yang konstan. Sesuai ketentuan, variabel konstan biasanya dieja menggunakan huruf besar dan garis bawah.
Jadi, ejaan yang benar adalah class
dan klass
, bukan Class
dan Klass
. Yang terakhir akan menjadi konstanta, dan keduanya Class
dan Klass
merupakan nama konstanta yang valid, tetapi saya akan merekomendasikan agar tidak menggunakannya untuk tujuan kejelasan.