Kemiripan Ruby dengan C
Seperti di C, di Ruby,...
- Anda bisa memprogram secara prosedural jika Anda suka (tetapi di balik layar sebenarnya kode Ruby Anda tetap berorientasi obyek).
- Kebanyakan operator sama (termasuk operator compound assignment dan bitwise). Tetapi Ruby tidak punya
++
atau--
. - Anda punya
__FILE__
dan__LINE__
. - Anda juga punya konstanta, tetapi tidak ada keyword khusus
const
. Konstanta menggunakan pengaturan penamaan, yaitu variabel yang diawali dengan huruf kapital adalah untuk konstanta. MisalnyaNAMA_PERUSAHAAN
. - String dapat menggunakan petik tunggal (tanpa interpolasi) maupun petik ganda (dengan interpolasi).
- String bersifat mutable yaitu isinya bisa berubah meskipun objeknya sendiri tidak berubah.
- Sama seperti
man
, Anda juga bisa membaca dokumentasi langsung di terminal Anda dengan menggunakan perintahri
.
· Tersedia command-line debugger
Perbedaan-Perbedaan Ruby dengan C
Tidak seperti C, di Ruby,...
- Obyek bersifat strongly typed (dan nama-nama variabel tidak punya type sama sekali). Obyek bisa berubah type, tapi Ruby akan selalu mengecek type obyek pada saat melakukan sesuatu. Bila Anda memanggil method atau instance variable yang tidak ada, Ruby akan memberikan pesan kesalahan.
- Tidak ada macro ataupun preprocessor. Tidak ada cast. Tidak ada pointer (juga tidak ada pointer arithmetic). Tidak ada
typedef@s, @sizeof
, maupunenum
. - Tidak ada file-file header. Anda cukup definisikan function Anda (biasanya disebut method di Ruby) dan kelas pada file source code utama.
- Tidak ada #define. Cukup gunakan konstanta.
- Di Ruby 1.8, kode diinterpretasi pada saat run-time daripada di_compile_ ke machine-code ataupun ke byte-code.
- Semua variabel ada di heap. Lebih jauh, Anda tidak perlu membebaskan variabel, sudah ada garbage collector untuk itu.
- Argument-argument di metode (atau function) di pass by reference, bukan by value.
require 'foo'
bukan#include <foo>
atau#include "foo"
.- Anda tidak bisa drop down ke assembly.
- Tidak pakai semicolon (titik koma
;
) di tiap akhir baris kode. - Tidak perlu pakai buka dan tutup kurung untuk
if
danwhile
untuk ekspresi kondisi. - Buka dan tutup kurung untuk pemanggilan metode (atau function) boleh dipakai boleh juga tidak (opsional).
- Biasanya Anda tidak menggunakan kurung kurawal (brace) untuk mengakhiri banyak baris (seperti perulangan
while
), karena Anda menggunakan keywordend
. - Keyword
do
digunakan untuk “blok”. Jadi tidak ada “do statement” seperti di C. - Istilah “blok” berbeda dengan C. Blok adalah untuk blok kode yang Anda asosiasikan dengan pemanggilan metode sehingga body metode bisa memanggil blok saat kode dijalankan.
- Tidak ada deklarasi variabel. Anda langsung bisa assign nama baru ke variabel disaat Anda memerlukan variabel.
- Ketika dites, hanya
false
dannil
yang dianggap value false. Semuanya selain itu adalah true (termasuk0
,0.0
dan"0"
). - Tidak ada
char
, yang ada string 1-letter. - String tidak diakhiri dengan null byte. Pada Ruby 1.8 elemen pembentuk String merupakan byte, dan Ruby belum membedakan antara string single-byte dan multibyte (misalnya encoding Unicode, dsb.), namun ada beberapa library yang berguna untuk mendukung aplikasi internasional di Ruby.
- Array literal masuk dalam kurung kotak (bracket), bukan dalam kurung kurawal (brace).
- Array secara otomatis membesar dan semakin membesar ketika Anda menambahkan elemen-elemen lagi ke array.
- Jika Anda menambahkan dua array, Anda kembali dengan array baru yang membesar (tentu, dialokasikan di heap) daripada melakukan aritmetik pointer.
- Pada sebagian besar kasus, semua hal adalah berupa expression (misalnya, statemen
while
sebenarnya menghasilkan sebuah rvalue).
Tidak ada komentar:
Posting Komentar