17 Ekim 2010 Pazar

Scala Giriş : 1. Bölüm

Dersi PDF olarak http://www.mediafire.com/?zvgdrbcewryky48 burdan indirebilirsiniz.


Merhabalar,
Şimdi Scalayı genel yapısını tanıycaz daha sonra derinlemesine dalıcaz.
İlk olarak şu fonksiyonları söyleyim.Ekrana yazdırmayı print veya println ile yapabiliriz.Açıklama satırlarını // veya /* */ ile oluşturabiliriz.

Değişken Tanımlama 
Scala'da değişken tanımlamak için bir çok yöntem var.

İlk olarak 
val değişken_adı = "cem" dediğimizde değişken_adı adında bi değişken tanımladık ve değerini cem yapmış olduk.

İkinci olarak
val değişken_adı :String = "cem"  diyerek tanımlıyoruz.Fakat burda ":String" ifadesiyle değişkenin tipini belirtiyoruz.Sizde şunu deneyin val değişken_adı :String = 12
sonucu görün.

Üçüncü olarakta
val değişken_adı  :java.lang.String = "cem" olarakta tanımlayabiliyoruz.İkinciyle aynı.

Fonksiyon Tanımlama

    def max(x: Int, y: Int): Float = {
      if (x > y) x
      else y
    }
  

Şimdi bu fonksiyonun yapsını açıklayalım.Burda def ile maxDeger adında bi fonksiyon oluşturcağımızı söyledik ve iki parametre belirttik Int tipinde ve sonrada :Float = { diyip sonucun ne tipte olcağını söyledik.Float dediğimiz için virgüllü sayı şeklinde sonuc vericek.Int deseydik tam sayı şeklinde.String dersek nolcağını siz deneyin.Ve ya x'in tipini Float yapın deneyin.(Virgüllü Sayılar Scala'da virgül ile değil nokta ile belirtilir.Yani (1.2) şeklinde mesela)
Sonrada fonksiyon içinde if kullanıp koşula göre çıktı vermesini sağladık.
Fonksiyonu nası kullanırız derseniz fonksiyonun hemen altında println(max(11,4)) diyin ve çalıştırın.

Örnek kullanım:

def max(x: Float, y: Int): Double = {
      if (x > y) x
      else y
    }
println(max(1.2F,2))
Burda 1.2F diye belirtmemizin sebebi Float tipinde olduğunu belirtmek için "F" yazdık 1.2F şeklinde.Yazmazsak hata verir Double tipinde algıladığı için.

Array(Dizi) Tanımlama :
Arrayleri'de bir çok şekilde oluşturabiliriz.Mesela

val array_adı = new Array[String](eleman_sayısı) şeklinde oluşturabilceğimiz gibi
val array_adı : Array[String] = new Array[String](eleman_sayısı) şeklindede oluşturabiliriz.

Örnek kullanım-1: 

val programlamaDili :Array[String] = new Array[String](4)
programlamaDili(0) = "Java"
programlamaDili(1) = "Scala"
programlamaDili(2) = "Ruby"
programlamaDili(3) = "Lisp"
for (i <- 0 to 3)
 print(programlamaDili(i))

Şimdi burda naptık açıklayalım.Önce arrayimizi tanımladık burda problem yok.Sonrada arrayimizin elemanlarını tanımladık.Yani programlamaDili(0) diyerek Dizinin ilk elamanını kullancagımızı belirttik ve bunun değerinin "Java" olcağını söyledik.Bi de burda şunu söyleyelim (4) diyerek eleman sayısını belirtiyoruz dedik fakat dizilerde eleman sırası 0 ile başlar.Yani birinci elemana programlamaDili(0) diyerek ulaştık 3üncü elemanaysa programlamaDili(2) diyerek.
Sonrada for döngüsü oluşturduk ve bu for döngüsünde i diye bi değişken tanımladık."<-" operatörlerinin burdaki anlamıysa ; sol tarafında değiken , sağ tarafındaysa arancak değişkenler için diyebiliriz.Biraz karışık oldu ama yani burda bunu i'yi arrayimizdeki 0'ıncı elemandan 3üncü elemana kadar tara gibisinden bişey.Umarım yanlış ifade etmiyorum.0 to 3 'te 0'dan 3'e kadar anlamında.Burda peki neden 0 to 3 yerine "programlamaDili" diyerek arrayimizin adını yazmadık.Çünkü elemanları indexlerine göre yazdırcagımız için Int tipinde olmak zorunda diyelim.Daha sonrada ztn elemanları yazdırdık print(programlamaDili(i)) diyerek.Sizde 0 to 3 değilde 3 to 4 deneyin veya 1 to 3 deneyin sonuçları görün.

Bunu bu şekilde kullanabilceğimiz gibi istersekte;


Örnek kullanım-2:

val programlamaDili :Array[String] = new Array[String](4)
programlamaDili.update(0,"Java")
programlamaDili.update(1,"Scala")
programlamaDili.update(2,"Ruby")
programlamaDili.update(3,"Lisp")
for (i <- 0 to 3)
  println(programlamaDili.apply(i))    //Bu şekildede kullanabiliriz.

Son olarak istersek'te Arrayleri şu şekildede oluşturabiliriz :

Örnek kullanım-3:

val sayilar = Array(1,2,3,4,5) /* Direkt sayilar diye bi değişken tanımladık ve bunu Array(1,2,3,4,5) diyerek 5 elemanlı bi Array olduğunu tanımladık.Burda Array tipini belirtmiyoruz çünkü sayı girdiğimiz için otomatik olarak Int tipinde algıladı. */

val sayilar = Array(1,2,3,4,5)  
   println(programlamaDili(2)) /* burda tahmin etceğiniz gibi (1,2,3,4,5) arasından 2'yi yazdır demiyoruz. 2inci sıradaki elemanı yazdır dıyoruz. */

Hiç yorum yok:

Yorum Gönder