Jenis lain dipanggil kaedah tunggal, yang hanya boleh dipanggil oleh satu objek, bukan kelas objek, atau objek lain yang tergolong dalam kelas yang sama dengan objek. Kaedah tunggal ditakrifkan seperti berikut
#category1=Category.new
def category1.last_updated_at
#blahblah
end
Selepas definisi ini, hanya objek category1 boleh memanggil kaedah last_updated_at
Kelas Ruby juga merupakan objek, dan juga boleh menentukan kaedah tunggal mereka sendiri, seperti
def Category.last_udpated_at
#blahblah
end
Dengan cara ini, hanya Kategori boleh memanggil kaedah last_updated_at, tetapi bukan kejadiannya, mahupun kelas lain, atau mana-mana objek lain secara tepat
Di dalam definisi kelas Kategori (di luar kaedah), diri merujuk kepada Kategori itu sendiri, jadi
def Category.last_udpated_at
#blahblah
end
boleh digantikan dengan
def self.last_udpated_at
#blahblah
end
Ini ialah kaedah yang ditakrifkan dalam soalan anda. Adakah anda faham sekarang? Pada asasnya, ia adalah kaedah tunggal bagi Kategori, dan Kategori ialah kelas Kaedah tunggal kelas juga dipanggil kaedah kelas kelas dan hanya boleh dipanggil oleh kelas itu sendiri.
Perlu diingatkan bahawa kaedah kelas ialah kaedah tunggal, tetapi ia adalah kaedah tunggal kelas Selain daripada itu, tiada apa yang istimewa mengenainya. Sama seperti kaedah instance dipegang oleh kelas yang mempunyai objek, kaedah singleton juga dipegang oleh sesuatu yang dipanggil eigenclass objek. Terdapat lebih banyak pengetahuan tentang eigenclass, jadi saya tidak akan menyebutnya di sini. Saya akan bercakap mengenainya dalam artikel.
self
menunjuk ke kelas semasa, jadi kaedah takrifan ini akan mentakrifkan kaedah kelas Jikaself.
tidak ditambah, kaedah contoh akan ditakrifkan.Cara penulisan ini
dalam contoh andaself.
bersamaan dengan:Terdapat dua jenis kaedah yang boleh dipanggil oleh objek delima.
Satu jenis ditakrifkan dalam kelas objek, dipanggil kaedah contoh, seperti
Kemudian contoh Kategori boleh memanggil kaedah ini, tetapi Kategori itu sendiri tidak boleh
Jenis lain dipanggil kaedah tunggal, yang hanya boleh dipanggil oleh satu objek, bukan kelas objek, atau objek lain yang tergolong dalam kelas yang sama dengan objek. Kaedah tunggal ditakrifkan seperti berikut
Selepas definisi ini, hanya objek category1 boleh memanggil kaedah last_updated_at
Kelas Ruby juga merupakan objek, dan juga boleh menentukan kaedah tunggal mereka sendiri, seperti
Dengan cara ini, hanya Kategori boleh memanggil kaedah last_updated_at, tetapi bukan kejadiannya, mahupun kelas lain, atau mana-mana objek lain secara tepat
Di dalam definisi kelas Kategori (di luar kaedah), diri merujuk kepada Kategori itu sendiri, jadi
boleh digantikan dengan
Ini ialah kaedah yang ditakrifkan dalam soalan anda. Adakah anda faham sekarang? Pada asasnya, ia adalah kaedah tunggal bagi Kategori, dan Kategori ialah kelas Kaedah tunggal kelas juga dipanggil kaedah kelas kelas dan hanya boleh dipanggil oleh kelas itu sendiri.
Perlu diingatkan bahawa kaedah kelas ialah kaedah tunggal, tetapi ia adalah kaedah tunggal kelas Selain daripada itu, tiada apa yang istimewa mengenainya. Sama seperti kaedah instance dipegang oleh kelas yang mempunyai objek, kaedah singleton juga dipegang oleh sesuatu yang dipanggil eigenclass objek. Terdapat lebih banyak pengetahuan tentang eigenclass, jadi saya tidak akan menyebutnya di sini. Saya akan bercakap mengenainya dalam artikel.
Tambah diri untuk mentakrifkan kaedah kelas, jika tidak, ia adalah kaedah contoh
Tentukan kaedah kelas juga boleh