Ruby: Perbezaan antara semakan

Kandungan dihapus Kandungan ditambah
Kurniasan (bincang | sumb.)
Tiada ringkasan suntingan
Kurniasan (bincang | sumb.)
Baris 68:
=== Kelas ===
 
Kod dibawah ini mentakrifkan sebuah kelas dinamakan Person. Sebagai tambahan untuk 'initialize'pengawalan, konstruktor lazim untuk mencipta objek baru, ia mempunyai dua kaedah: satu untuk menggantikan operator pembeza <=> (supaya <code>Array#sort</code> boleh menyusun mengikut umur) dan satu lagi untk menggantikan kaedah <code>to_s</code> (supaya <code>Kernel#puts</code> boleh memformat outputnya). Di sini, "<code>attr_reader</code>" adalah satu contoh bagi [[pengaturcaraan meta]] dalam Ruby: "attr" mentakrifkan kaedah ''geter (getter)'' dan ''penentu (setter)'' untuk ''pemboleh ubah ciptaan (instance variable)''; "attr_reader": hanya kaedah geter. Juga, penyataan terakhir yang dinilai dalam sebuah kaedah ialah nilai yang dikembalikan, oleh itu penggunaan 'return' yang eksplisit boleh diabaikan.
 
class PersonOrang
def initialize(namenama, ageumur)
@namenama, @ageumur = namenama, ageumur
end
def <=>(personorang)
@ageumur <=> personorang.ageumur
end
def to_s
"#{@namenama} (#{@ageumur})"
end
attr_reader :namenama, :ageumur
end
group = <nowiki>[</nowiki> PersonOrang.new("JohnAli", 20),
PersonOrang.new("MarkusAbu", 63),
PersonOrang.new("AshAhmad", 16)
<nowiki>]</nowiki>
puts group.sort.reverse
 
Paparan yang muncul daripada yang di atas adalah tiga nama dalam susunan umur menurun:
The above prints three names in reverse age order:
MarkusAbu (63)
JohnAli (20)
AshAhmad (16)
 
==Pautan luar==