//Read-only Variables (Yalnızca Okunabilir Değişkenler)
val x:Int = 32
val d:Double = 3.14
val p = 3 // inferred type

//Mutable Variables
var a = 5
var b = 6
var n:Int = 2
var sayac:Int = 0

// Yukarıdaki sabitler ve değişkenler global olarak tanımlanmıştır.

// SORU: Kotlin veri tipleri nelerdir?

// SORU: Operatörlerde farklı bir davranış var mı?

//Fonksiyonlar
fun topla(sayi1:Int,sayi2:Int):Int{
    return sayi1 + sayi2
}

fun toplam(sayi1:Int,sayi2:Int):Int = sayi1 + sayi2

fun toplamHesapla(sayi1:Int,sayi2:Int):Int{
    sayac = sayac + 1
    return sayi1 + sayi2
}

// SORU: Kotlin projelerinde uygulamanın giriş noktası neresidir?
fun main(args:Array<String>){
    // Uygulamayı çalıştırdığımızda bu iki süslü parantez arasına yazmış olduğumuz kodlar çalışacak.
    println(toplamHesapla(3,4))
    println(sayac)
    println("Sayaç Değeri: ${sayac}")
    println(toplamHesapla(2,6))
    println("Sayaç Değeri: ${sayac}")

    println(mesajlaKarsila("Ercan"))
}

fun mesajlaKarsila(ad:String) = "Merhaba $ad"

// SORU: Kotlin dilinde yorum satırı/satırları nasıl kullanılır?
// IntelliJ IDEA ile kısayol tuşları nelerdir?

// SORU: Kotlin ile yazdığım kod nasıl çalışır, nasıl paketlenir?

// SORU: JVM üzerinde mi çalışır?

// http://ercanbozkurt.blogspot.com