Java’cılar için Scala – 1 [Temel]

0 575

Scala da Java gibi JVM tabanlı bir dildir ve makinenizde JDK kurulumu yapıldıysa geliştirme ortamlarına Scala için pluginler ekleyerek geliştirmeye başlayabilirsiniz bu nedenle kurulumdan bahsetmeyeceğim.

Yazı boyunca zaman zaman Java ile karşılaştırmalar yapacağım için java bilmeniz faydalı olacaktır. Bu nedenle bu yazı programalamaya giriş için uygun olmayacaktır.

Öncelikle temel programalama ifadelerini ele alacağız. Amacımız bilenlerin daha hızlı adapte olması.

  1. Değişken Tanımlama ve Değer Atama

Scala da Java gibi bir main methoda sahip.

Gördüğümüz gibi öncelikle noktalı virgül kullanımı artık yok. Değişken tiplerimiz ise Java’dan tanıdığımız tipler. Buradaki önemli nokta var ve val kullanımı. Yorum satırı olarak da yazdığımız şekilde val immutable olduğu için bir alt satırda compile timed hata alıyoruz ve ilk tanımı değiştirmemizi istiyor. Bir diğer nokta ise bazı tanımlarda değişken tiplerimizi belirlememiz. Bunu Scala bizim için kendisi yapıyor.

result değeri hesaplanırken hem integer hem de double değerler mevcut fakat Scala bu noktada bize zorluk çıkarmıyor. Java bu işlem için öncelikle dönüştürme yapmamız gerekirdi.

2. Operatörler

Java’da kullandığımız operatörler burada da geçerli fakat aşağıda farklı bir durum var.

String bir ifadeyi çarpma operatörü ile de kullanabiliyoruz. Java da ise toplama(+) operatörü ile string ifadeleri birleştirebiliriz.

3. Kontrol Yapıları

if/else yapılarını kullanımda fark olmasa da bu yapılarda sıkça kullandığımız string ifadeleri karşılaştırma noktasında farklılıklar mevcut. Java’da string ifadeleri karşılaştırırken == yerine equals methodunu kullanıyoruz. Bunun nedeni ise method ile değişkenin değerini karşılaştırmamız. Fakat Scala iki işlemin de aynı olduğunu söylüyor. Aşağıdaki linkte de sorulan bir soru, inceleyebilirsiniz.

https://stackoverflow.com/questions/24860919/use-instead-of-equals-for-string-comparison-in-scala

bir diğer yapımız olan switch/case yapısı burada match olarak karşımızda.

default olarak bildiğimiz kavram ise burada ‘_’ ile belirtiyoruz ve break kullanımı gördüğümüz üzere burada yer almıyor.

    4. Dögüler

for döngüsünde iki kavram mevcut;

  • to
  • until

kavram İngilizce olduğu için belki anlamlı gelebilir fakat kullanım olarak beni şaşırttı.

to keyword’u ile 10 dahil bütün sayıları yazdırırken, until ile 10’a kadar yani 9 dahil olmak üzere bütün sayıları yazdırcaktır ve gördüğünüz üzere i için değişken tanımı yapmadık.

bir diğer nokta da 3. for’un içine yazdığımız if koşulu. Bildiğimiz şekilde for döngüsüne zaten bizler de koşullar ekleyebiliyorduk fakat if keyword’u ile kullanmak benim için diğer bir farklı nokta oldu.

Bunun dışında while ve do while döngülerinin kullanımları aynı.

 5. Fonksiyonlar

Burada yine bazı dillerde karşımıza çıkan def keyword’u mevcut. Java’da ise böyle bir keyword’a ihtiyacımız yok, dönüş tiplerini belirtmemiz yeterliydi.

Bildiğiniz gibi Java’da void keyword’u mevcut burada bunun karşılığı olarak Unit mevcut. Örnekleri incleyelim.

kodlara aşağıdaki linkten ulaşabilirsiniz.

https://gist.github.com/cemdrman/9b00a0ddfe4b9b9e542e1932ffc3e45a

Faydalı olması dileğiyle.

Email adresiniz yayınlanmayacaktır.