Kotlin veri tipleri ve değişkenler konusu ile Kotlin Eğitimine başlıyoruz arkadaşlar. Bu makalede, Kotlin’deki değişkenlerin nasıl tanımlanacağını, Kotlin’in değişkenlerin türünü nasıl belirleneceğini ve Kotlin tarafından değişkenler oluşturmak için desteklenen temel veri türlerinin neler olduğunu elimden geldiğince anlatmaya çalışacağım arkadaşlar. Ayrıca çeşitli veri türleriyle nasıl çalışılacağını ve bir türün diğer türlere nasıl dönüştürüleceğini de öğreneceksiniz.
Kotlin’de bir değişken nasıl tanımlanır ?
Kotlin’de bir değişken tanımlamak için iki yol vardır ya var
yada val
anahtar kelimesi kullanılır nasıl mı şöyle bir örnek vereyim ?
var dil = "türkçe" var paun = 85 val ad = "Sercan" val sayi = 99
Daha önce bir programlama dili biliyorsanız daha doğrusu statik bir dil biliyorsanız (C#, Java, C vb.) mutlaka değişkenin hangi veri tipinde olduğunu belirtmeniz gerekir ancak kotlin de bu geçerli değil. Yukarıdaki örnekte dil ve ad değişkenleri String, paun ve sayi değişkeni Int türünde olduğunu kotlin otomatik olarak algılıyor.
Var ve Val arasındaki fark
- Val (Immutable reference) = val anahtar kelime kullanılarak yapılan değişken sonradan değiştirilemez yani başka bir değer ataması yapılamaz.
- Var (Mutable reference) = var anahtar kelimesi kullanılarak oluşturulan değişken istenildiği zaman başka bir değer ataması yapılabilir.
Örnek val
;
val ad = "sercan" ad = "aysun" // Kotlin: Val cannot be reassigned
Zaten direk bu örnek kodu ekrana yazarken direk hata verecektir arkadaşlar.
Örnek var
;
var ad = "sercan" // ad değişkenine sercan değeri atandı ad = "aysun" // ad değişkenine aysun değeri atandı ad = "şahin" // ad değişkenine şahin değeri atandı ad = "sefa" // ad değişkenine sefa değeri atandı
Yukarıdaki örnekler açık olarak arasındaki farkı sizlere anlatmıştır sanırım.
Not: Bu arada başka bir programlama dili bilen arkadaşlar çoktan fark etmiştir örnekteki değişkenlerin sonuna Noktalı Virgül (;) koymuyorum çünkü gerek yok.
Kotlin Veri Tipleri
Sayısal Veri Tipleri
Kotlin’de ki sayısal veri tipleri 6 çeşittir bunlar küçükten büyüğe doğru şunlardır ;
- Byte
- Short
- Int
- Long
- Float
- Double
1. Byte
Byte veri türü bellekte 8 bitlik alan kapar max kapasitesi 127 minimum alabileceği değer -128 dir.
Örnek;
fun main(args: Array<String>) { // Bir değişkene veri ataması 2 şekilde yapılabilir // 1.Yol var sayi:Byte // sayi değişkenin Byte türünde olduğunu belirtiyorum sayi = 100 //2.Yol var sayi2:Byte = 95 // // Ayrıca Byte değişkenin max ve min değerlerini öğrenmek için var byteMax:Byte = Byte.MAX_VALUE // 127 var byteMin:Byte = Byte.MIN_VALUE // -128 }
2.Short
Short veri türü belleğimizde 16 bitlik alan kaplar max alabileceği değer 32767 min alabileceği değer -32768.
Örnek;
fun main(args: Array<String>) { var sayi:Short sayi = 2562 var sayi2:Short = 30000 var shortMax:Short = Short.MAX_VALUE // 32767 var shortMin:Short = Short.MIN_VALUE // -32768 }
3. Int
Integer veri türü bellekte 32 bitlik bir alan kaplar min değer -2147483648 max değer 2147483647 değerleri alır.
Örnek;
fun main(args: Array<String>) { var sayi:Int sayi = 3569552 var sayi2:Int = 9856542 var intMax:Int = Int.MAX_VALUE // 2147483647 var intMin:Int = Int.MIN_VALUE // -2147483648 }
Makalenin başında da anlattığım gibi istersem veri tipi belirtmek zorunda olmaya bilirim örneğin bir değişken tanımlayayım ve bunun içine değer olarak 20 sayısını atayalım;
fun main(args: Array<String>) { var sayi = 20 }
Şimdi biz bu değişkeni tanımladım ama veri tipi ne olabilir acaba ? Arkadaşlar bu şekilde tanımlanan değişkenler otomatik olarak Integer olarak tanımlanır. Şuda aklınıza gelmesin ama örneğin Integer değerinin alabileceği max değerden fazla değer verirsem o otomatik olarak long veri tipine geçer diye düşünmeyin geçmez direk hatayı alnınızın ortasına çakar 🙂
4. Long
Long veri tipi bellekte 64 bitlik bir alan kaplar, alabileceği max değer 263 -1, Min alacağı değer -263 .
Örneğin;
fun main(args: Array<String>) { var sayi:Long sayi = 354154252 var sayi2:Long = 4251542 var longMax:Long = Long.MAX_VALUE var longMin:Long = Long.MIN_VALUE }
5.Float
fun main(args: Array<String>) { var sayi:Float sayi = 3.54F var sayi2:Float = 42.515F var FloatMax:Float = Float.MAX_VALUE var FloatMin:Float = Float.MIN_VALUE }
6. Double
fun main(args: Array<String>) { var sayi:Double sayi = 354.252 var sayi2:Double = 42.51542 var DoubleMax:Double = Double.MAX_VALUE var DoubleMin:Double = Double.MIN_VALUE }
6 adet sayısal veri tiplerini anlatmaya çalıştım ancak diyeceksiniz ki sercan bunları biz nasıl ekrana yazacağız onuda söyle de bilelim 🙂 hemen anlatayım öğrek ile;
Kotlin’de print() ve println() Kullanımı
fun main(args: Array<String>) { // İki şekilde ekrana ekrana yazdırma methodu var bunlar ; // print() var isim:String = "Sercan" print(isim) //yada var ad:String = "Sercan" var soyad:String = "Çepni" print("Adınız : $ad Soyadınız : $soyad") // println() var cicek:String = "Gül" println(cicek) //yada var oyun:String = "Saklanbaç" println("Sevdiğiniz oyun : $oyun") }
Fark ettiyseniz print() ve println() methodları içierisine iki şekilde değişken yazdıra biliyorum eğer direk sadece değişkeni ekrana yazdıracaksam println(degiskenAdi)
yada println("Bu Bir değişken : $degiskenAdi")
kısacası eğer çift tırnak içinde değişken yazdıracak iseniz başına Dolar ($) işareti koymalısınız.
Peki print() ve println() arasındaki fark nedir derseniz yukarda verdiğim örneğin ekran çıktısını koydum arkadaşlar aradaki farkı rahatça görün diye bazı çıktılar aynı satırda birleşik şekilde gözüküyor ama aynı methot içinde ekrana yazdırılmadı kısacası aradaki fark print() içine yazılan veriyi ekrana yazar ama arkasından başka bir print() methodu yazılırsa yine aynı satıra yazar. Ancak println() methodu ile ekrana veri yazılır ve bir alt satıra geçilir sonrasında print() methodu kullanılsa bile bir alt satırda işlem görür.
Ayrıca sayısal veri türlerinin max ve min değerlerini şu şeklide tanımlanır ve ekrana yazar (Ayrıca kafanıza tam girsin diye farklı şekillerde ekrana yazdırdım) ;
fun main(args: Array<String>) { val byteMin : Byte = Byte.MIN_VALUE println("Byte Min Değeri : " + byteMin) var byteMax : Byte = Byte.MAX_VALUE println("Byte Max Değeri : " + byteMax) var shortMin : Short = Short.MIN_VALUE println("Short Min Dğeri : " + shortMin) var shortMax : Short = Short.MAX_VALUE println("Short Max Değeri : " + shortMax) var intMin : Int = Int.MIN_VALUE println("Intger Min Değeri : " + intMin) var intMax : Int = Int.MAX_VALUE println("Integer Max Değeri : " + intMax) var longMin : Long = Long.MIN_VALUE println("Long Min Değeri : " + longMin) var longMax : Long = Long.MAX_VALUE println("Long Max Değeri : " + longMax) var floatMin : Float = Float.MIN_VALUE println("Float Min Değeri : $floatMin") var floatMax : Float = Float.MAX_VALUE println("Float Max Değeri : " + floatMax) var doubleMin : Double = Double.MIN_VALUE println(doubleMin) var doubleMax : Double = Double.MAX_VALUE println("Double Max Değeri : " + doubleMax) }
Char Veri Tipi
Kotlin’de tek karakterli veri saklamak için Char veri tipi kullanılır örneğin ;
fun main(args: Array<String>) { var veri:Char = 'S' println("$veri") }
Boolean Veri Tipi
Boolean veri tipi sadece iki değer alır bunlar true ve false dir. Örneğin;
fun main(args: Array<String>) { var veri:Boolean = true println("$veri") var veri2:Boolean = false println("$veri2") }
String Veri Tipi
String veri tipi içerisinde metinsel sayısal (ancak oda metinsel olarak algılanır yani sayısal işlem yapamazsınız) veriler tutabilir. Örneğin ;
fun main(args: Array<String>) { var isim:String = "Sercan" var soyad:String = "Çepni" println("İsminiz : $isim Soyad : $soyad") }
Not: String veri tipleri ile ilgili çok daha geniş kapsamlı ayrıca bir makale daha yazacağım arkadaşlar nedeni ise String veri tipleri üzerinde çok çeşitli methotlardan yararlana biliyoruz örneğin bir String verinin boyutu veya ilk 5 karakterini alma gibi.
Dizi Veri Tipleri
Dizi veri tipleri içerisinde birden fazla değişken tutabilen veri tipleridir. Örneğin ;
fun main(args: Array<String>) { // Veri Tipini belirtmeden dizi tanımlama var sayilar = arrayOf(1,5,7,9,4) var isimler = arrayOf("Sercan","Şahin","Ayşe","Aysun") var karisik = arrayOf(1,true,4,"Sercan",'a') // Bir dizinin içinde farklı veri tipleri tanımlaya biliriz // Veri Tipi belirtilerek dizi tanımlama var sayilar2:Array<Int> = arrayOf(6,5,4,96,5) var isimler2:Array<String> = arrayOf("Okan","Ali","Mehmet","Ahmet","Fevzi") }
Diziler çok geniş kapsamlı bir konu arkadaşlar o yüzden ayrıca bir makale yazılmayı hak ediyor 🙂
Umarım anlaya bileceğiniz bir şekilde anlatabilmişimdir arkadaşlar sorularınızı ister yorum olarak isterseniz de en üst menüden soru sor kısmına sorunuzu göndererek sorabilirsiniz <3