Sama seperti di C++, di Ruby,...
• Anda punya banyak operator-operator yang sama (bahkan ::). Operator << juga sering digunakan untuk append elemen ke list. Tetapi perlu dicatat: di Ruby Anda tidak akan pernah menggunakan ->, di Ruby selalu menggunakan ..
• Ada public, private dan protected. Namun perlu diperhatikan bahwa arti semantiknya mirip, namun tidak sepenuhnya sama dengan penggunaan C++.
• Sintaks inheritance (penurunan kelas) sama satu karakter juga, tetapi menggunakan < bukan :. • Anda bisa menaruh kode Anda dalam “module”, mirip kalau di C++ Anda menggunakan namespace. • Ada juga Exception yang kurang lebih sama tetapi berbeda keyword. Perbedaan-perbedaan Ruby dengan C++ Tidak seperti C++, di Ruby,... • Tidak ada reference secara eksplisit. Jadi setiap variabel di Ruby sudah otomatis dereference obyek tersebut. Apabila di C++ ada perbedaan antara orang.nama dengan orang->nama, di Ruby hanya ada orang.nama. Sintaks &orang juga tidak diperlukan di Ruby.
• Obyek strongly tetapi dynamically typed. Jadi runtime-lah yang menentukan at runtime (disaat runtime) bahwa suatu pemanggilan metode berjalan atau tidak.
• Konstruktor dinamakan initialize ketimbang nama kelas.
• Semua metode selalu virtual.
• Nama variabel (static) kelas selalu diawali dengan @ (seperti @total_widget).
• Anda tidak bisa langsung mengakses variabel member, semua akses ke variabel member public (kalau di Ruby dikenal sebagai atribut) dipanggil lewat metode.
• Pakai self, bukan this.
• Beberapa metode diakhiri dengan ’?’ atau ’!’. Sebetulnya tanda tanya dan tanda seru tersebut juga merupakan bagian dari nama metode.
• Tidak ada multiple inheritance. Tetapi Ruby punya “mixin” (jadi Anda bisa “inherit” / menurunkan semua metode instan dari module).
• Ada pengaturan penamaan (mis. nama kelas selalu diawali dengan huruf kapital, nama variabel lokal diawali dengan huruf kecil).
• Buka dan tutup kurung untuk pemanggilan metode boleh dipakai boleh juga tidak (opsional).
• Anda bisa membuka lagi kelas kapan saja dan menambahkan metode-metode ke kelas tersebut.
• Tidak perlu C++ template (karena Anda bisa assign obyek apa saja ke suatu variabel, dan type akan diketahui ketika runtime). Juga tidak ada casting.
• Iterasi dilakukan dengan sedikit berbeda. Di Ruby, Anda tidak menggunakan obyek iterator terpisah (seperti vector
• Hanya ada dua container type, yaitu Array dan Hash.
• Tidak ada konversi tipe dan typecasting. Dengan Ruby, Anda akan mengetahui kenapa hal tersebut tidak diperlukan.
• Mendukung multithreading, tetapi di Ruby 1.8 masih “green thread” (diimplementasikan hanya dengan interpreter) yang didukung.
• Library unit testing sudah standar bawaan di Ruby.
Tidak ada komentar:
Posting Komentar