Twitter
RSS

Ruby & C# in Code

Ruby sekarang menjadi barang laris di berbagai platform. Berikut ini beberapa panduan terutama bagi anda-anda yang sudah terjun di dunia C# dan bingung untuk terjun ke Ruby.
Supaya tidak bingung bagaimana perbedaan kode umum antara C# dan Ruby, disini saya akan membuat perbandingan:
1. Deklarasi Variabel
C#
int
count = 1;

Kita harus mendeklarasikan type, identifier, lalu value. Di Ruby kita hanya perlu menulis:

Ruby
count = 1
count = "abc"
Sebagaimana kita lihat, tidak ada informasi type, apakah dia string ataukah integer. Ini bukti bahwa bukan hanya
Ruby sebuah dynamic language, tetapi juga dynamically typed. Ini berarti semua type di Ruby itu implisit. Karena kita memberi nilai 1 pada variabel count maka variable akan bertipe number, tapi jika kita memberi nilai"abc" pada variable count, maka variable count akan bertipe sebagai string tanpa kita merubah tipe data count sebagaimana C#.

2. Deklarasi Class
C#
public class Person
{
}

Ruby
class Person

end

3.
Dalam C# kita dapat mendeklarasikan dua tipe variabel dalam sebuah class, instance dan static. Sebagaimana kita tahu instance variables menyimpan sebuah nilai unik untuk setiap class instance, sedangkan static variables mendeklarasikan sebuah nulai tunggal untuk semua instance dari sebuah tipe data. Jika di C# terlihat seperti ini:
C#
public class Person
{
protected int count;
protected static int count2;
}

Sedangkan di Ruby seperti ini :
Ruby
class Person
@count
@@count
end
Satu catatan yaitu Ruby static variables selalu direferensikan sebagai "class variables" (contoh: @@count)

4. Satu hal lagi yang harus kita ingat bahwa tidak ada type(tipe data) dalam variable-variabel di Ruby. Ini dikarenakan Ruby class dan instance variables di desain sebagaimana rupa sehingga tidak dapat diakses dari luar class. Saya menggunakan protected di versi C# karena semua instance variables dari Ruby dapat diakses dari descendant classes, sebenarnya tidak ada private instance atau class variables dalam Ruby. Untuk mendapatkan variabel ini dari luar class kita harus menulis methods untuk mendapatkan(get) atau memberi nilai(set) sebuah nilai.
C#
public class Person
{
public int Count { get; set; }
public static int Count2 { get; set; }
}

Ruby mendukung sebuah method yang mengijinkan kita mendefinisikan "properties" yang dikenal dengan "attr_accessor" yang hanya berjalan untuk instance variables:
Ruby
class Person
attr_accessor :count
@@count2 = 0

def count2
@@count2
end

def count2=(value)
@@count2 = value
end
end

Saya pikir cukup sekian, ntar kalo ada waktu saya lanjutkan postingan tentang Ruby dan C# di waktu yang akan datang. Mudah-mudahan bisa dipahami dengan mudah.

Comments (0)