Hello Scala

Merhaba arkadaslar, yeni ahbap’ımız Scala ile yazılara başlıyoruz.  Web developer localhostta , Java developer JVM’de bulunur. Bu yüzden Scalaya merak salmış bulunmaktayız

Scala’nın dikkat çeken birkaç noktasına değinelim;

  • Pure OOP bir dil.
  • Hem OO hem functional programming olan bir dil.
  • Her şey obje . Evet her şey
  • Primitive tip yok (Java’ya kıyasla).
  • “;” satırların sonuna koymak optional.
  • Nested functional(iç içe fonksiyon yazabiliyoruz). Fonksiyonları parametre olarak diğer fonksiyonlara gönderebiliyoruz.
    Fonksiyonlar da objedir dolayısıyla.
  • İmmutable collection.
  • Gelişmiş concurrency  mekanizması.
  • Actor’ler ile mesaj merkezli kolay multithreading model. (Javadaki synchronized kelimesini unutabilirsiniz )
  • Scala kodu Java byte koda çevrilerek JVM ‘de çalışması sağlanır.
  • Java kodunu çalıştırabilir.
  • Java SDK’daki class’ları Scala içerisinde rahatlıkça kullanabiliyoruz.
  • JVM’de çalışan yaklaşık 150-200 kadar dilden biri.

http://scala-lang.org/ adresine giderek sisteminize uygun şekilde Scala’yı kurabilirsiniz.
Not : Scala’yı kullanabilmek için sisteminizde + JDK 1.4 sürümü bulunması gerekmektedir.

Scala’yı kurduktan sonra terminalden işe başlıyalım. Birkaç  alıştırma yapıcaz bugün sadece.

2014-12-07 22:31:30

 

* Terminalden buna benzer bir çıktıyı görebiliriz. Şimdi şunu girelim;

Bize çıktı olarak şunu vericektir ->

* Scala type inference olduğu için number değişkeninin tipini Int olarak belirledi. Şimdi de şunu yazalım;

* Çıktıya baktığımızda şu sonucu görebiliriz -> error: reassignment to val number = 5

* Scala shell bize val number değişkenine yeniden değer atayamadığımızı söyledi. Scala da val değişken constant’tır ve yeniden değer atanamaz. İki şekilde değişken tanımı yapabiliriz. Bunlar; val type ve var type. Burada var type val type’nın tam tersidir.

val vs. var

* Değişkenleri var ve val kullanarak tanımlayabiliriz. val olarak tanımlarsak immutable olur ve initialize ettikten sonra yeniden değer atayamayız. var değişkenler ise mutable’dır ve herhangi bir zamanda yeniden değer atanabilir.

* immutable variable’a uygulanmaz referans’a uygulanır. Örneğin val buffer = new StringBuffer() dedigimizde bufferin referansını değiştiremeyiz ama buffer.append() gibi methodlarla içeriğini değiştirebiliriz. Daha sonra val ve var konusuna tekrar değineceğiz.

* Scala shell de aynı scope içerisinde aynı isimde değişken tanımı yapabiliriz. Aşağıdaki kodu girdigimizde herhangi bir hata oluşmayacaktır.

* Not : Ancak gerçek Scala kodu içerisinde bu mümkün değildir.

* Tekrar consola şunu girelim -> val list = List(1,3,5). Integerdan oluşan bir dizi tanımı yaptık. Scala type inference olduğu için type safe’dir.

2014-12-07 22:57:46

 

 

 

* List değerlerine ulaşmak için [] yerine () kullanılır. list(1) -> bize 3 sonucunu verecektir.

* Tipinden emin olmadıgınız şeyleri shell de yazarak tipini öğrenmek güzel bir teknik olabilir

* Scala compiler ve execute ifadeleri Java’ya oldukça benzerdir.

* Bir scala dosyasını derlemek için; scalac Sample.scala ve run etmek için de scala Sample dememiz yeterlidir.

Hello Scala

Sıra geldi standart olarak Hello demeye

* Konsolda gerekli çıktıyı görebiliriz.

* Satırı Javadaki main methodu ile aynı işlevdedir. Methodlar def ile tanımlanır. Daha sonra detaylarına değiniceğiz.

 

Scala Basic Syntax

  • Case sensitive : Scala case-sensitive’dır. Number ile number farklı değişkenlerdir.
  • Class Name : Java’daki benzer sınıf isimlendirmesi bulunur. UpperCamelCase kullanılır. Exp: MySampleClass gibi.
  • Method Name : Methodların ilk harfi küçük olmalıdır. Takip eden kelimeler için UpperCamelCase kuralı kullanılır. Exp: myMethod gibi.
  • File Name : Java’daki public class ile file isminin aynı olması gibidir. object ismi ile file ismi aynı olmalıdır. Yukarıdaki örnekteki gibi object Sample olduğu için file ismi Sample.scala olmalıdır. Aksi takdire compile olmayacaktır.
  • İdentifiers : Değişkenler $, – ve sayı ile başlayamaz. _ içerebilir.

Scala Consice

Scala kısa söz dizimi ile büyük işler başarabiliyor. Bunların örneklerine sonradan tekrar değiniceğiz. Şimdilik Java ve Scala içerisinde aynı örneği yapalım.

Java;

Scala;

Scala için şu cümleler sarf edilmiştir
* Java is WORA, Scala is WORN -> Write Once Read Never

* “With Scala, you reason and program closer to the domain, closer to plain English.” ~ Tomas Alexandre

 

Scala giriş için bu kadar yeterli sanırım. Bir sonraki Class ve Object gibi yapılara değiniceğiz.

* Bir sonraki yazıda görüşmek üzere. ~ Alican Akkus

* Mutlu Kalın , Kod’la kalın ve bol bol Çay için

1134 Total Views 1 Views Today