2021-01-10

Scala notları__Koleksiyonlar

 


Scala ile ilgili önceki paylaşımımda koleksiyonları değerlendirmiştim, bu yazımda da benzer konuyu işleyeceğim, ama özet olarak önemli bulduğum noktalara değineceğim.

Scala`da herşeyin bir nesne olduğu ve dolayısıyla her nesnenin bir method ile işlem yaptığını yeniden belirteyim. Scala - Scalable(ölçeklenebilir) Language (programlama dili) olması nedeni ile diğer dillere nazaran daha esnetilebilir özelliklere sahiptir, bizim koleksiyonlar da istisna değil bu konuda. 

Array

 Scala`daki diğer koleksiyonlar içinde Liste`ye en benzer olan nesnedir. Mutable bir yapıya sahiptir, genellike `new` constructor ile yeni Array tanımlanır ve alması gereken veri tipinin belirtilmesi gerekir.


List

Liste de Array gibi tek veri tipi bulundurur, farklarından en önemlisi Immutable yapıya sahip olmasıdır. 
Bir diğer farkı ise koleksiyona yeni değer ekleme noktalarında Listenin daha hızlı, Array`in ise random seçimlerde daha performanslı çalışmasıdır.Liste`de Nil boş liste oluşturulmasında kullanılan bir nesnedir. Immutable yapıya sahip olduğu için yeni eleman eklenmesi yalnızca dönüştürme işlemleri ile mümkündür, yani başka bir liste oluşturarak yada farklı koleksiyondan(ör. ListeBuffer -> List) dönüştürme gibi. Pythondaki gibi Array ve Liste en sık kullanılan nesnelerdendir, bu koleksiyonların da sıklıkla kullanılan methodlar var: map, foreach, filter gibi.


Tuple

Array ve List`in aksine Tuple farklı veri tipinden elemanları bünyesinde tutabilir ve en fazla 22 adet eleman bulundurabilir. Tanımlama yapılırken de eleman sayısına göre belirlenir. Immutable yapıya sahiptir. 


Set

Bir önceki koleksiyonların aksine Set ve Map mutable ve immutable yapıda oluşturulabilirler. Yapmamız gereken scala.collection.mutable yada scala.collection.immutable olarak tanımlamak. Varsayılan olarak Immutable nesne oluşturulur hem Set, hem de Map`de. Aynı zamanda, her ikisinde += methodu ile yeni eleman eklenmesi mümkündür. Set`in bir diğer farkı ise mükerrer verileri tutmamasıdır, yani (1,2,4,2) olarak tanımlayacağınız Set (1,2,4) olarak döndürülecektir. 


Map

Map de Set`deki kurallarla mutable ve immutable şeklinde tanımlanır, Python`daki Dictionary gibi düşünebiliriz.


Tuple hariç tüm diğer bahsettiğim koleksiyonlar 0 index yapısıyla () içinde çağrılabilir, Tuple ise bu kural 1 index yapısıyla _1 şeklindedir.
Zamanla Scala ile ilgili önemli notları paylaşmaya çalışacağım. Takipte kalın.

No comments:

Post a Comment