Kotlin Temelleri (Değişkenler ve Tip Dönüşümleri)
Kotlin’de val (value)-var (variable) olarak iki farklı değişken tanımlama yöntemi vardır.
- Val, değeri get edilebilir ancak set edilemez.
- Var, get-set işlemleri yapılabilir.
Numbers
Kotlin’de Byte, Short, Int, Long, Float, Double olarak değişken tipleri mevcuttur.
- Float ve Double ondalıklı sayıları tanımlarken kullanılır.
- Byte , Short , Int ve Long değer aralıklarına göre farklılık gösterir.
Değişkene değer ataması yapılırken maksimum performans için doğru değişken tipini kullanmak önemlidir.
Tip çıkarımı yapılırken eğer değer Int ifade aralığında ise default olarak Int tanımlanır. Tanımladığınız değerler Int değer aralığından büyük ise default olarak Long tanımlanır.
Long ve Float değer ataması yapılırken sayı sonlarına “L” ve “F” işaretleri konulabilmektedir.
Number değişken tanımı yapılırken “_” kullanılabilir. Bu sayede sayının okunabilirliği kolaylaşır.
- Değişken referanslarını karşılaştırırken “===” kullanılır. Değişken değer karşılaştırılması yapılırken “==” kullanılır.
- Yalnızca aynı değişkenlerin referans karşılaştırması “true” dönerken 2 farklı değişkenin referansları farklı olduğundan “false” dönmektedir.
Char
Tek tırnak içerisinde genellikle harf tanımlamalarında kullanılır. Örneğin; escape veya unicode ifadeleri char olarak tanımlanabilir.
Char ile sayı tanımlaması da yapılabilir. Fakat, Int tipine dönüşüm yapılırken ASCII tablosundaki sayısal karşılığını elde etmiş oluruz.
Boşluk bırakmak , alt satıra geçmek ,satır başı yapmak gibi escape tanımlamalarını char olarak ifade edebiliriz.
UniCode karakter tanımlamalarını da char tipi ile ifade edebiliriz.
Boolean
Bir olayın gerçekleşip gerçekleşmediğini tanımlarken kullanılır. “true” ve “false” değerleri vardır. Şart kontrolü yaparken yardımcı olarak “&&, ||, and, or” gibi operatörler kullanılır.
String
Çift tırnak içerisinde yazılan karakter bütününü temsil eder. String ifadelendirmelerinde + operatörünü kullanırken göz ardı etmememiz gereken durumlar vardır. Örneğin farklı tipteki bir değişkenin önüne String bir değişken veya ifade koyarak toplarsanız, sonuç String olacaktır. Fakat farklı tipteki değişkenin sonrasına String bir değişken koyarsanız hata aldığınızı gözlemlersiniz.
Çift tırnak içerisinde “+” operatörüne ihtiyaç duymadan “$” işareti ile String tanımlama yapabilirsiniz. Eğer birden fazla değişken ifade edecekseniz veya bir değişkenin özelliğini ifade etmek isterseniz “${}“ kullanabilirsiniz.
3 tırnak kullanarak Row String oluşturabilirsiniz. trimIndent() ile ifadedeki en uzun terimi baz alıp kenar boşluklarını silecektir. Bir nevi sola hizalama da diyebiliriz. trimMargin(“#”) kullandığımız yerde belirttiğiniz karaktere kadar, o satırda boşluk silme işlemi yapılır.
Array
Aynı veya farklı türdeki verileri tek bir değişkende tanımlamamıza imkan tanır. arrayOf() tanımlaması ile aynı veya farklı türdeki değişkenler ile array oluşturulabilir. Farklı türdeki verileri bir arada tutmak istersek arrayOf<Any>() şeklinde tanımlama yapılabilir. Belirttiğimiz sayı kadar null değerli bir array tanımlamak istersek arrayOfNulls<Type>(size) şeklinde array oluşturabilirsiniz.
Array<Type>(size){higher order function} olarak tanımlanabilir. Belirttiğimiz “size” kadar higher order function çalışacaktır. Index numaraları ile işlem yapıp array tanımlaması oluşturulabilir. Ayrıca aynı sabit değişkenli “size” kadar array de oluşturulabilir.
ByteArray , ShortArray , CharArray gibi primitive array tanımlamaları da yapılabilmektedir.
Tip Dönüşümü (Type Conversion)
2 çeşit tip dönüşümü vardır. Implicit ve Explicit type conversion. Kotlinde Implicit type conversion yani belirgin olmayan tip dönüşümü yoktur . Explicit type conversion yani belirgin tip dönüşümü kullanılır.
Tip donusumu icin kullanabileceginiz fonksiyonlar;
toByte(), toShort(), toInt(), toLong(), toDouble(), toFloat(), toChar(), toString(), toUByte(), toUShort(), toUInt(), toULong(), toDuration(), toBigDecimal(), toBigInteger()
Değişken tip değer aralıkları dikkate alınarak tip dönüşümünü açık olarak (explicit) yapmalısınız. Küçük değer aralığı olan tipten değer aralığı daha büyük bir tipe dönüşüm sorun teşkil etmezken, büyük bir değer aralığından küçük değer aralığına sahip olan bir tipe dönüşüm sorun teşkil edebilmektedir.
Kapalı(implicit) tip dönüşümü Kotlin’de yok fakat 2 farklı number tipindeki değer toplandığı takdirde sonuç değeri, çıkan değerin tipinde olacaktır.
Java da kullandığımız tip dönüşümlerini Kotlin’de de kullanılabilir. Bunu için ilgili tiplerin java versiyonlarını kullanmalısınız.
java.lang.Byte.parseByte(), java.lang.Short.parseShort(), java.lang.Int.parseInt(), java.lang.Long.parseLong(), java.lang.Double.parseDouble(), java.lang.Float.parseFloat(),
java.lang.Byte.parseUByte(), java.lang.Short.parseUShort(), java.lang.Int.parseUInt(), java.lang.Long.parseULong(), java.lang.Double.parseUDouble(), java.lang.Float.parseUFloat()
Kotlin Temelleri (Değişkenler ve Tip Dönüşümleri)’ni anlatmaya çalıştığım yazımın sonuna geldik. İlginiz için teşekkürler Keyifli Kodlamalar.