Salı, Aralık 27, 2005

Rubyye Sorularim 1

Şu ana değin, hep Ruby'nin parıltılarını anlatıyordum. Bu sefer bir değişiklik yapacağım. Ruby'yle ilgili bir sorumu, hatta pek de hoşuma gitmeyen bir noktayı yazacağım. Nesne odaklı programlamayla ilgili kurallardan biri, değer nesnelerinin (value objects - ancak bu kavramı J2EE Design Patterns'ın value object patternıyla karıştırmayın, o farklı bir şey) bir kere oluşturulduktan sonra değiştirilmemesi (immutable) gerekir. Bunu temin etmek için, Java String, Integer gibi en çok kullanılan değer nesnelerini değiştirilmez kılmıştır.

Ancak gördüğüm kadarıyla Ruby'de böyle bir durum yok. Değer nesnelerini değiştirebiliyorsunuz....

Rubyde:


x = "merhaba"
x.upcase!
puts x


=>

"MERHABA"

Javada:


String x = "merhaba";
String y = x.toUpperCase();
System.out.println("x = " + x);
System.out.println("y = " + y);

=>

x = merhaba
y = MERHABA


Neden böyle yapmışlar acaba?

Hiç yorum yok: