Kotlin Programlama Dili #4

noktalıvirgül

Deneyimli Moderatör
17 Kas 2020
923
510
Kotlin’de String’ler

Merhaba değerli okurlarımız, Kotlin konularımızın dördüncüsünde yeni örneklerle karşınızdayız.

Kotlin’deki dizinler şu type ile temsil edilir: String. Bir dizgi değer ise çoğunlukla çift tırnak (“ ”) içerisindeki karakter dizisini barındırır. Konumuz içerisinde geçen string ifadeleri bazen dizgi olarak kullanılmıştır. Ayrıca Kotlin’de nesneler, bir değişkendeki üye işlevleri ve özellikleri aranabilen niteliktedir.

Örnek:


JavaScript:
val str = “1234 örnek”

Bir dizginin öğelerine indeksleme işlemiyle erişilebilir. Bu karakterler “for” döngüsü ile yenilenebilir:

For ( str’de c ) {

Print ( c )

}

Dizgileri dönüştüren tüm işlemlerden sonra oluşan sonuçları yeni bir string nesnede döndürür ve ayrıca orijinal dizgiyi değiştirmez.

JavaScript:
val dizi = “örnek”

println ( str . büyük harf ()) // yeni bir string nesnesi oluşturun ve yazdırın.

Println ( str ) // Orijinal dizgi aynı kalır.

Dizgilerin birleştirilebilmesi için “+” operatörü kullanılır. bu operatör ayrıca, ilk öge dizgi iken dizgileri diğer türdeki değerlerle birleştirmek için de kullanılır.

JavaScript:
val s = “abc” + 1

println ( s + “def” )

Dizgi Değişmezleri

Kotlin’de dizgi değişmezleri iki türdedir. Bunlar, “escaped strings”, “multiline strings” adını alır.

Escaped strings örneğine bakacak olursak,


JavaScript:
val s = “Hello word!\n”

Escaped, ters eğik çizgiyle ( \ ) yapılıyor.

Multiline strings örneğine bakarsak,


JavaScript:
Val text = “””

For ( c in “ foo” )

Print ( c )
Bu string’ler, yeni satırlar ve rastgele metin içerebilir. Üçlü tırnak ( “”” ) ile sonlandırılır. Escaped içermez.

Multiline strings’lerin başındaki boşlukların kaldırılması için trimMargin() işlevi kullanılır. Buna örnek şöyledir:


JavaScript:
val text = “””

|Tell me and forget.

|Teach me and I remember.

|Involve me and I learn.

|(Benjamin Franklin)

“”” trimMargin()

Burada varsayılan olarak kenar boşluğu öneki için şu sembol kullanılır: “ | “. (Bu sembolün klavye kısayolu şu şekildedir: “alt+124”) Yine de başka bir karakter parametre olarak iletilebilir. Mesela; trimMargin ( “>”).

String Templates (Dizgi Şablonları)

Dizgi değişmezleri, şablon ifadeleri de içerebilir. Bir şablon da dolar işaretiyle ( $ ) başlar ve isimden oluşur.

Örnek:


JavaScript:
val i = 10


println (“i = $i”) //prints “i = 10”


Ayrıca, süslü parantez içerisindeki ifadeye örnek şöyledir:


val s = “örnek”


println ( “ $s.uzunluk: ${s.uzunluk}” ) // “örnek.uzunluk 3” değerini yazdırır.

- Dolar işareti ($) ayrıca çok satırlı biz dizgiye (multiline strings), tanımlayıcının başlangıcı olarak bir sembolün önüne şu örnekteki gibi eklenebilir:

JavaScript:
val price = “””


${ ‘ $ ‘ }_9.99


“””
- Kotlin’de değişkenlerin ve veri yapılarının veri türü de vardır. veri türleri, derleyiciye değişken veya veri yapısıyla ne yapılması konusunda verilen izni ifade ederler. Veri türünü çıkarabilme özelliğine tür çıkarımı deniliyor. Örneğin, computers adındaki veri türüne bir tam sayı değeri atanırsa Kotlin computers sayısal veri türüne sahip olduğuna dair tür çıkarımını yapar ve böylece şu aritmetik işlemler yapılabilir:

JavaScript:
var computers = 10 // Bazı bilgisayarlar alıcı buluyor.


computers = 8


computers = computers + 3 // ekleme yapılıyor: 11


computers += 7 // ekleme: 18


computers -= 3 // çıkarma: 15


computers *= 2 // çarpma: 30


computers /= 3 // bölme: 10


println ( computers) // 10

-

Bu örnek kodlarda kullanılanlar, atama operatörleridir.


KategoriTipler
Tamsayılar (Integers)Byte, short, int, long
İşaretsiz Tamsayılar (Unsigned integers)Ubyte, ushort, Uint, Ulong
Kayan nokta sayıları-Kesirli sayılar (Floating-point numbers)Float, double
Boole (Değerinin doğru veya yanlış olabileceği değişken türü)Boolean
KarakterlerChar
Dizgeler-dizinlerStrings


Bir değişkenin başlatılmadan önce bildirilmesi için “:” belirtilir.

Örnek:


JavaScript:
val d : Dahili // değişkenin başlatılmadan bildirilmesi


d = 8 // değişken başlatıldı.


val e : String = “merhaba” // değişken açıkça yazıldı.


Println ( d ) // 8


Println ( e ) // merhaba


//değişkenler başlatıldığı için okunabilecek durumdalar.

Koleksiyonlar

Programlama esnasında verilerin daha sonra işlenmesi amacıyla gruplamak için Kotlin’de koleksiyonlar bulunur. Bu koleksiyonları şöyle sıralayabiliriz:

Listeler: Ögelerin sıralı koleksiyonları

Setler: Hem benzersiz hem sırasız öge koleksiyonları

Haritalar: Benzersiz anahtarlar olması ve sadece bir değerle eşlenmesi

-Bu koleksiyon türleri değiştirilebilir veya salt okunur kalabilir.

Listeler

Ögeleri sıraya göre saklar ve yenilenen ögeleri de barındırabilir. Salt okunur olan liste için “listOf()” işlevi kullanılır. Değişken bir liste oluşturmak içinse mutableListOf() işlevi kullanılır.

Ögelerin türü bildirilirken liste bildiriminden sonra açılı parantez ( <> ) ile tür eklenir.

Örnek:


JavaScript:
val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )


println ( ReadOnlyShapes ) // [monitör, klavye, fare]


val sekilerli : MutableList <String> = mutableListOf ( “monitör”, “klavye”, “fare” ) // Açık tür bildirimli değişken liste


println ( Bilgisayar donanım )

Bu değişken listelerdeki istenmeyen değişiklikleri önlemen için, değişken listelerin salt okunur görünümleri atanabilir:

Örnek:


JavaScript:
val shapes: MutableList<String> = mutableListOf( “monitör”, “klavye”, “fare” )


val shapesLocked: List<String> = shapes
Bir listedeki ögeye erişim için indekslenen erişim operatörü “[ ]” kullanılır.

Örnek:


JavaScript:
val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )


println ( “Listedeki ilk öge: ${readOnlyShapes [0]}” ) // listedeki ilk öge: monitör

-

Bir listedeki ilk veya son ögeyi almak için “.first” ve “.last” işlevleri kullanılır.

Örnek:


JavaScript:
val readOnlyShapes = listOf (“monitör”, “klavye”, “fare” )


println ( “Listedeki ilk öge: ${readOnlyShapes.first()} ) // Listedeki ilk öge: monitör

Not: .first() ve .last() uzantı işlevlerine örnektir. Bir nesne üzerinden bir uzantı işlevi çağırmak için işlevin adı, nesnenin sonuna nokta ( . ) eklenerek yazılmalıdır.

Bir listedeki öge sayını görmek için de “.count()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )


println ( “Bu listede ${readOnlyShapes.count()} öge var” ) // Bu listede 3 öge var.

Bir ögenin listede var olup olmadığının kontrolünü sağlamak için “in” operatörü kullanılır:

Örnek:


JavaScript:
val readOnlyShapes = listOf (“monitör”, “klavye”, “fare” )


println ( readOnlyShapes’te “ fare ” ) //doğru

Değiştirilebilir listeye öge eklemek veya listeden öge çıkarmak amaçlı olarak “.add()” ve “.remove()” işlevleri kullanılır

Örnek:


JavaScript:
val shapes : MutableList < String > = mutableListOf ( “monitör”, “klavye”, “fare” ) // Listeye “hoparlör”ü ekle.


Shape.add (“ hoparlör” )


Println ( shapes) // [monitör, klavye, fare, hoparlör]


Shapes.kaldır ( “hoparlör” )


Println (shapes) // [monitör, klavye, fare]

Ayar (Set)

Listeler sıralıdır, tekrarlanan ögelere izin verir ama kümeler sırasızdır, yalnızca benzersiz ögeleri barındırır. Salt okunur bir küme oluşturmak için setOf() işlevi; değişken bir küme oluşturmak için mutableSetOf() işlevi kullanılır. setler oluşturulurken depolanan öge türleri Kotlin tarafından anlaşılabilir. Türleri bildirmek için küme bildiriminden sonra açılı parantez “<>” içindeki tür eklenir.

Örnek:


JavaScript:
val readOnlyFruit = seOf ( “elma”, “çilek”, “muz”, “muz” ) //salt okunur küme


val meyve : MutableSet < String > = mutableSetOf (“elma”, “çilek”, “muz”, “muz”)


println ( readOnlyFruit ) // [elma, çilek, muz]

Bu örnekte, kümelerin yalnızca benzersiz ögeleri içermesi gerekliliği yüzünden, yinelenen ögelerin kaldırıldığı görülebilir.

Not: İstenmeyen değişikliklerin önlenmesi için değişken kümelerin salt okunur görünümleri şu şekilde elde edilir:

Örnek:


JavaScript:
val fruit: MutableSet<String> = mutableSetOf(“elma”, “çilek” “muz”, “muz” )


val fruitLocked: Set<String> = fruit

Not: Setler sırasız olduğu için belirli bir dizindeki ögeye erişilemiyor.

Bir kümedeki ögelerin sayısını görmek için “.count()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyFruit = setOf ( “elma”, “çilek” “muz”, “muz”)


println ( “Bu sette ${readOnlyFruit.count()} öge var” ) // Bu sette 3 öge var.

Bir ögenin kümede olup olmadığını görmek için “in” operatörü kullanılır:

Örnek:


JavaScript:
val readOnlyFruit = setOf ( “elma”, “çilek”, “muz”, “muz” )


println ( readOnlyFruit’te “çilek” ) //doğru


Değişken kümeye öge eklemek veya bu kümeden öge çıkarmak için “.add()” ve “.remove()” işlevleri kullanılır.

Örnek:

JavaScript:
val fruit : MutableSet < String > = mutableSetOf ( “elma”, “çilek”, “muz”, “muz” )


fruit.add ( “ejder meyvesi” ) // Sete “ejder meyvesi” eklendi.


println ( meyve ) // [elma, çilek, muz, ejder meyvesi]






meyve.kaldır ( “ejder meyvesi” ) // “ejder meyvesi”ni kümeden kaldır.


Println ( fruit ) // [elma, çilek, muz]

Harita (Map)

Haritalar, ögeleri anahtar/değer çiftleri olarak barındırırlar. Yani anahtara başvurarak değere erişilir. Bir listede bir dizin kullanmadan bir değer aramak istersek haritaları kullanabiliriz.

Not: Hangi değer alınmak siteniyorsa isteniyorsa Kotlin’in bu isteği yerine getirebilmesi için haritadaki her anahtarın benzersiz olması gerekir. Ayrıca bir haritada yinelenen değerler de olabilir.

-Salt okunur bir harita oluşturmak için mapOf() işlevi kullanılmalıdır. Değişken bir harita oluşturmak içinse mutableMapOf() işlevi kullanılmalıdır. Depolanan ögelerin türünü açıkça bildirmek için harita bildiriminden sonra açılı parantez ( <> ) içindeki anahtarlar ve değerlerin türleri eklendiğinde Kotlin böylelikle haritalar oluşturulurken depolanan ögelerin türünü çıkarabiliyor. Örneğin; MutableMap<String, Int>. (Anahtarların türü string, değerlerin türü Int)

-Harita oluştururken her anahtar ile ilgili değeri arasında kullanmaktır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 ) //salt okunur harita


println ( readOnlyJuiceMenu ) // {elma=100, vişne=190, portakal=100}


val JuiceMenu : MutableMap < String, Int > = mutableMapOf ( “elma” – 100, “çilek” – 190, “muz” – 100 )


println ( meyve suyu menü) // {elma=100, vişne=190, portakal=100}

Not: İstenmeyen değişikliklerin önlenmesi için değiştirilebilir haritaların salt okunur görünümleri şu şekilde elde edilir:

JavaScript:
val juiceMenu: MutableMap<String, Int> = mutableMapOf ( “apple” to 100, “vişne” to 190, “portakal” to 100)


val juiceMenuLocked: Map<String, Int> = juiceMenu

Haritadaki bir değere erişim sağlamak için indekslenmiş erişim operatörü [] anahtarıyla kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” -100 ) // Salt okunur harita


println ( “Elma suyunun değeri: ${readOnlyJuiceMenu[“elma”]}” ) // Elma suyunun değeri: 100

- Haritadaki ögelerin sayısını almak için “.count()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = MapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 ) //Salt okunur harita


println ( “Bu haritada ${readOnlyJucieMenu.count()} anahtar/değer çifti var” ) // Bu haritanın 3 anahtar/değer çifti var.

Değişken bir haritaya öge eklemek veya bu haritadan öge kaldırmak için “.put()” ve “.remove()” işlevleri kullanılır.

Örnek:


JavaScript:
val JuiceMenu : MutableMap < String, Int > = mutableMapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 )


JuiceMenu.put ( “coconut”, 150 ) // Haritaya 150 değeri olan coconut anahtarı eklenir.


Println ( juiceMenu ) // {elma=100, vişne=190, portakal=100, Hindistan cevizi=150}


juiceMenu.kaldır ( “portakal” ) // “portakal” anahtarını haritadan kaldırır.


println ( juiceMenu ) //{elma=100, vişne=190, Hindistan cevizi=150}

- Bir anahtarın haritaya eklenip eklenmediğini görmek için “.containsKey()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 )


println ( readOnlyJuiceMenu.includeKey ( “vişne” ))

- Haritanın anahtarlarının veya değerlerinin bir koleksiyona erişmek için “keys” ve “values” özellikleri kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal”- 100)


println ( readOnlyJuiceMenu.keys ) // [elma, vişne, portakal]


println ( readOnlyJuiceMenu.values ) // [100, 190, 100]

Not: Bir nesnenin özelliğine erişmek için nesnenin sonuna nokta (.) eklenerek özellik adı yazılır.

Bir anahtarın veya değerin haritada olup olmadığını görmek için in operatörü kullanılır.

Örnek:
+

JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100)


println (readOnlyJuiceMenu’da “portakal”.keys ) //doğru


println ( readOnlyJuiceMenu.values 200 ) // yanlış
Bu devam konumuzda da Kotlin kod parçacıklarından, operatörlerinden bahsettik ve örnekler verdik. Umarım faydası olmuştur.
 
Son düzenleme:

reqz

Üye
26 Ağu 2023
61
27
Software
Kotlin’de String’ler

Merhaba değerli okurlarımız, Kotlin konularımızın dördüncüsünde yeni örneklerle karşınızdayız.

Kotlin’deki dizinler şu type ile temsil edilir: String. Bir dizgi değer ise çoğunlukla çift tırnak (“ ”) içerisindeki karakter dizisini barındırır. Konumuz içerisinde geçen string ifadeleri bazen dizgi olarak kullanılmıştır. Ayrıca Kotlin’de nesneler, bir değişkendeki üye işlevleri ve özellikleri aranabilen niteliktedir.

Örnek:

val str = “1234 örnek”

Bir dizginin öğelerine indeksleme işlemiyle erişilebilir. Bu karakterler “for” döngüsü ile yenilenebilir:

For ( str’de c ) {

Print ( c )

}

Dizgileri dönüştüren tüm işlemlerden sonra oluşan sonuçları yeni bir string nesnede döndürür ve ayrıca orijinal dizgiyi değiştirmez.

val dizi = “örnek”

println ( str . büyük harf ()) // yeni bir string nesnesi oluşturun ve yazdırın.

Println ( str ) // Orijinal dizgi aynı kalır.

Dizgilerin birleştirilebilmesi için “+” operatörü kullanılır. bu operatör ayrıca, ilk öge dizgi iken dizgileri diğer türdeki değerlerle birleştirmek için de kullanılır.

Val s = “abc” + 1

Println ( s + “def” )

Dizgi Değişmezleri

Kotlin’de dizgi değişmezleri iki türdedir. Bunlar, “escaped strings”, “multiline strings” adını alır.

Escaped strings örneğine bakacak olursak,

val s = “Hello word!\n”

Escaped, ters eğik çizgiyle ( \ ) yapılıyor.

Multiline strings örneğine bakarsak,

Val text = “””

For ( c in “ foo” )

Print ( c )

Bu string’ler, yeni satırlar ve rastgele metin içerebilir. Üçlü tırnak ( “”” ) ile sonlandırılır. Escaped içermez.

Multiline strings’lerin başındaki boşlukların kaldırılması için trimMargin() işlevi kullanılır. Buna örnek şöyledir:

val text = “””

|Tell me and forget.

|Teach me and I remember.

|Involve me and I learn.

|(Benjamin Franklin)

“”” trimMargin()

Burada varsayılan olarak kenar boşluğu öneki için şu sembol kullanılır: “ | “. (Bu sembolün klavye kısayolu şu şekildedir: “alt+124”) Yine de başka bir karakter parametre olarak iletilebilir. Mesela; trimMargin ( “>”).

String Templates (Dizgi Şablonları)

Dizgi değişmezleri, şablon ifadeleri de içerebilir. Bir şablon da dolar işaretiyle ( $ ) başlar ve isimden oluşur.

Örnek:

val i = 10

println (“i = $i”) //prints “i = 10”

Ayrıca, süslü parantez içerisindeki ifadeye örnek şöyledir:

val s = “örnek”

println ( “ $s.uzunluk: ${s.uzunluk}” ) // “örnek.uzunluk 3” değerini yazdırır.

- Dolar işareti ($) ayrıca çok satırlı biz dizgiye (multiline strings), tanımlayıcının başlangıcı olarak bir sembolün önüne şu örnekteki gibi eklenebilir:

val price = “””

${ ‘ $ ‘ }_9.99

“””
- Kotlin’de değişkenlerin ve veri yapılarının veri türü de vardır. veri türleri, derleyiciye değişken veya veri yapısıyla ne yapılması konusunda verilen izni ifade ederler. Veri türünü çıkarabilme özelliğine tür çıkarımı deniliyor. Örneğin, computers adındaki veri türüne bir tam sayı değeri atanırsa Kotlin computers sayısal veri türüne sahip olduğuna dair tür çıkarımını yapar ve böylece şu aritmetik işlemler yapılabilir:

var computers = 10 // Bazı bilgisayarlar alıcı buluyor.

computers = 8

computers = computers + 3 // ekleme yapılıyor: 11

computers += 7 // ekleme: 18

computers -= 3 // çıkarma: 15

computers *= 2 // çarpma: 30

computers /= 3 // bölme: 10

println ( computers) // 10

-

Bu örnek kodlarda kullanılanlar, atama operatörleridir.


KategoriTipler
Tamsayılar (Integers)Byte, short, int, long
İşaretsiz Tamsayılar (Unsigned integers)Ubyte, ushort, Uint, Ulong
Kayan nokta sayıları-Kesirli sayılar (Floating-point numbers)Float, double
Boole (Değerinin doğru veya yanlış olabileceği değişken türü)Boolean
KarakterlerChar
Dizgeler-dizinlerStrings


Bir değişkenin başlatılmadan önce bildirilmesi için “:” belirtilir.

Örnek:

Değer d : Dahili // değişkenin başlatılmadan bildirilmesi

d = 8 // değişken başlatıldı.

Val e : String = “merhaba” // değişken açıkça yazıldı.

Println ( d ) // 8

Println ( e ) // merhaba

//değişkenler başlatıldığı için okunabilecek durumdalar.

Koleksiyonlar

Programlama esnasında verilerin daha sonra işlenmesi amacıyla gruplamak için Kotlin’de koleksiyonlar bulunur. Bu koleksiyonları şöyle sıralayabiliriz:

Listeler: Ögelerin sıralı koleksiyonları

Setler: Hem benzersiz hem sırasız öge koleksiyonları

Haritalar: Benzersiz anahtarlar olması ve sadece bir değerle eşlenmesi

-Bu koleksiyon türleri değiştirilebilir veya salt okunur kalabilir.

Listeler

Ögeleri sıraya göre saklar ve yenilenen ögeleri de barındırabilir. Salt okunur olan liste için “listOf()” işlevi kullanılır. Değişken bir liste oluşturmak içinse mutableListOf() işlevi kullanılır.

Ögelerin türü bildirilirken liste bildiriminden sonra açılı parantez ( <> ) ile tür eklenir.

Örnek:

val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )

println ( ReadOnlyShapes ) // [monitör, klavye, fare]

val sekilerli : MutableList <String> = mutableListOf ( “monitör”, “klavye”, “fare” ) // Açık tür bildirimli değişken liste

println ( Bilgisayar donanım )

Bu değişken listelerdeki istenmeyen değişiklikleri önlemen için, değişken listelerin salt okunur görünümleri atanabilir:

Örnek:

val shapes: MutableList<String> = mutableListOf( “monitör”, “klavye”, “fare” )

val shapesLocked: List<String> = shapes

Bir listedeki ögeye erişim için indekslenen erişim operatörü “[ ]” kullanılır.

Örnek:

val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )

println ( “Listedeki ilk öge: ${readOnlyShapes [0]}” ) // listedeki ilk öge: monitör

-

Bir listedeki ilk veya son ögeyi almak için “.first” ve “.last” işlevleri kullanılır.

Örnek:

val readOnlyShapes = listOf (“monitör”, “klavye”, “fare” )

println ( “Listedeki ilk öge: ${readOnlyShapes.first()} ) // Listedeki ilk öge: monitör

Not: .first() ve .last() uzantı işlevlerine örnektir. Bir nesne üzerinden bir uzantı işlevi çağırmak için işlevin adı, nesnenin sonuna nokta ( . ) eklenerek yazılmalıdır.

Bir listedeki öge sayını görmek için de “.count()” işlevi kullanılır.

Örnek:

val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )

println ( “Bu listede ${readOnlyShapes.count()} öge var” ) // Bu listede 3 öge var.

Bir ögenin listede var olup olmadığının kontrolünü sağlamak için “in” operatörü kullanılır:

Örnek:

val readOnlyShapes = listOf (“monitör”, “klavye”, “fare” )

println ( readOnlyShapes’te “ fare ” ) //doğru

Değiştirilebilir listeye öge eklemek veya listeden öge çıkarmak amaçlı olarak “.add()” ve “.remove()” işlevleri kullanılır

Örnek:

val shapes : MutableList < String > = mutableListOf ( “monitör”, “klavye”, “fare” ) // Listeye “hoparlör”ü ekle.

Shape.add (“ hoparlör” )

Println ( shapes) // [monitör, klavye, fare, hoparlör]

Shapes.kaldır ( “hoparlör” )

Println (shapes) // [monitör, klavye, fare]

Ayar (Set)

Listeler sıralıdır, tekrarlanan ögelere izin verir ama kümeler sırasızdır, yalnızca benzersiz ögeleri barındırır. Salt okunur bir küme oluşturmak için setOf() işlevi; değişken bir küme oluşturmak için mutableSetOf() işlevi kullanılır. setler oluşturulurken depolanan öge türleri Kotlin tarafından anlaşılabilir. Türleri bildirmek için küme bildiriminden sonra açılı parantez “<>” içindeki tür eklenir.

Örnek:

val readOnlyFruit = seOf ( “elma”, “çilek”, “muz”, “muz” ) //salt okunur küme

val meyve : MutableSet < String > = mutableSetOf (“elma”, “çilek”, “muz”, “muz”)

println ( readOnlyFruit ) // [elma, çilek, muz]

Bu örnekte, kümelerin yalnızca benzersiz ögeleri içermesi gerekliliği yüzünden, yinelenen ögelerin kaldırıldığı görülebilir.

Not: İstenmeyen değişikliklerin önlenmesi için değişken kümelerin salt okunur görünümleri şu şekilde elde edilir:

Örnek:

val fruit: MutableSet<String> = mutableSetOf(“elma”, “çilek” “muz”, “muz” )

val fruitLocked: Set<String> = fruit

Not: Setler sırasız olduğu için belirli bir dizindeki ögeye erişilemiyor.

Bir kümedeki ögelerin sayısını görmek için “.count()” işlevi kullanılır.

Örnek:

val readOnlyFruit = setOf ( “elma”, “çilek” “muz”, “muz”)

println ( “Bu sette ${readOnlyFruit.count()} öge var” ) // Bu sette 3 öge var.

Bir ögenin kümede olup olmadığını görmek için “in” operatörü kullanılır:

Örnek:

val readOnlyFruit = setOf ( “elma”, “çilek”, “muz”, “muz” )

println ( readOnlyFruit’te “çilek” ) //doğru

Değişken kümeye öge eklemek veya bu kümeden öge çıkarmak için “.add()” ve “.remove()” işlevleri kullanılır.

Örnek:

val fruit : MutableSet < String > = mutableSetOf ( “elma”, “çilek”, “muz”, “muz” )

fruit.add ( “ejder meyvesi” ) // Sete “ejder meyvesi” eklendi.

println ( meyve ) // [elma, çilek, muz, ejder meyvesi]



meyve.kaldır ( “ejder meyvesi” ) // “ejder meyvesi”ni kümeden kaldır.

Println ( fruit ) // [elma, çilek, muz]

Harita (Map)

Haritalar, ögeleri anahtar/değer çiftleri olarak barındırırlar. Yani anahtara başvurarak değere erişilir. Bir listede bir dizin kullanmadan bir değer aramak istersek haritaları kullanabiliriz.

Not: Hangi değer alınmak siteniyorsa isteniyorsa Kotlin’in bu isteği yerine getirebilmesi için haritadaki her anahtarın benzersiz olması gerekir. Ayrıca bir haritada yinelenen değerler de olabilir.

-Salt okunur bir harita oluşturmak için mapOf() işlevi kullanılmalıdır. Değişken bir harita oluşturmak içinse mutableMapOf() işlevi kullanılmalıdır. Depolanan ögelerin türünü açıkça bildirmek için harita bildiriminden sonra açılı parantez ( <> ) içindeki anahtarlar ve değerlerin türleri eklendiğinde Kotlin böylelikle haritalar oluşturulurken depolanan ögelerin türünü çıkarabiliyor. Örneğin; MutableMap<String, Int>. (Anahtarların türü string, değerlerin türü Int)

-Harita oluştururken her anahtar ile ilgili değeri arasında kullanmaktır.

Örnek:

val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 ) //salt okunur harita

println ( readOnlyJuiceMenu ) // {elma=100, vişne=190, portakal=100}

val JuiceMenu : MutableMap < String, Int > = mutableMapOf ( “elma” – 100, “çilek” – 190, “muz” – 100 )

println ( meyve suyu menü) // {elma=100, vişne=190, portakal=100}

Not: İstenmeyen değişikliklerin önlenmesi için değiştirilebilir haritaların salt okunur görünümleri şu şekilde elde edilir:

val juiceMenu: MutableMap<String, Int> = mutableMapOf ( “apple” to 100, “vişne” to 190, “portakal” to 100)

val juiceMenuLocked: Map<String, Int> = juiceMenu

Haritadaki bir değere erişim sağlamak için indekslenmiş erişim operatörü [] anahtarıyla kullanılır.

Örnek:

val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” -100 ) // Salt okunur harita

println ( “Elma suyunun değeri: ${readOnlyJuiceMenu[“elma”]}” ) // Elma suyunun değeri: 100

Haritadaki ögelerin sayısını almak için “.count()” işlevi kullanılır.

Örnek:

val readOnlyJuiceMenu = MapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 ) //Salt okunur harita

println ( “Bu haritada ${readOnlyJucieMenu.count()} anahtar/değer çifti var” ) // Bu haritanın 3 anahtar/değer çifti var.

Değişken bir haritaya öge eklemek veya bu haritadan öge kaldırmak için “.put()” ve “.remove()” işlevleri kullanılır.

Örnek:

val JuiceMenu : MutableMap < String, Int > = mutableMapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 )

JuiceMenu.put ( “coconut”, 150 ) // Haritaya 150 değeri olan coconut anahtarı eklenir.

Println ( juiceMenu ) // {elma=100, vişne=190, portakal=100, Hindistan cevizi=150}

juiceMenu.kaldır ( “portakal” ) // “portakal” anahtarını haritadan kaldırır.

println ( juiceMenu ) //{elma=100, vişne=190, Hindistan cevizi=150}

Bir anahtarın haritaya eklenip eklenmediğini görmek için “.containsKey()” işlevi kullanılır.

Örnek:

val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 )

println ( readOnlyJuiceMenu.includeKey ( “vişne” ))

Haritanın anahtarlarının veya değerlerinin bir koleksiyona erişmek için “keys” ve “values” özellikleri kullanılır.

Örnek:

val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal”- 100)

println ( readOnlyJuiceMenu.keys ) // [elma, vişne, portakal]

println ( readOnlyJuiceMenu.values ) // [100, 190, 100]

Not: Bir nesnenin özelliğine erişmek için nesnenin sonuna nokta (.) eklenerek özellik adı yazılır.

Bir anahtarın veya değerin haritada olup olmadığını görmek için in operatörü kullanılır.

Örnek:
+
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100)

println (readOnlyJuiceMenu’da “portakal”.keys ) //doğru

println ( readOnlyJuiceMenu.values 200 ) // yanlış

-

Bu devam konumuzda da Kotlin kod parçacıklarından, operatörlerinden bahsettik ve örnekler verdik. Umarım faydası olmuştur.
eline sağlık
readOnlyJuiceMenu.values == 200 olmaz mı
 

rootibo

Kıdemli Üye
13 Mar 2023
2,168
1,459
Kotlin’de String’ler

Merhaba değerli okurlarımız, Kotlin konularımızın dördüncüsünde yeni örneklerle karşınızdayız.

Kotlin’deki dizinler şu type ile temsil edilir: String. Bir dizgi değer ise çoğunlukla çift tırnak (“ ”) içerisindeki karakter dizisini barındırır. Konumuz içerisinde geçen string ifadeleri bazen dizgi olarak kullanılmıştır. Ayrıca Kotlin’de nesneler, bir değişkendeki üye işlevleri ve özellikleri aranabilen niteliktedir.

Örnek:


JavaScript:
val str = “1234 örnek”

Bir dizginin öğelerine indeksleme işlemiyle erişilebilir. Bu karakterler “for” döngüsü ile yenilenebilir:

For ( str’de c ) {

Print ( c )

}

Dizgileri dönüştüren tüm işlemlerden sonra oluşan sonuçları yeni bir string nesnede döndürür ve ayrıca orijinal dizgiyi değiştirmez.

JavaScript:
val dizi = “örnek”

println ( str . büyük harf ()) // yeni bir string nesnesi oluşturun ve yazdırın.

Println ( str ) // Orijinal dizgi aynı kalır.

Dizgilerin birleştirilebilmesi için “+” operatörü kullanılır. bu operatör ayrıca, ilk öge dizgi iken dizgileri diğer türdeki değerlerle birleştirmek için de kullanılır.

JavaScript:
val s = “abc” + 1

println ( s + “def” )

Dizgi Değişmezleri

Kotlin’de dizgi değişmezleri iki türdedir. Bunlar, “escaped strings”, “multiline strings” adını alır.

Escaped strings örneğine bakacak olursak,


JavaScript:
val s = “Hello word!\n”

Escaped, ters eğik çizgiyle ( \ ) yapılıyor.

Multiline strings örneğine bakarsak,


JavaScript:
Val text = “””

For ( c in “ foo” )

Print ( c )
Bu string’ler, yeni satırlar ve rastgele metin içerebilir. Üçlü tırnak ( “”” ) ile sonlandırılır. Escaped içermez.

Multiline strings’lerin başındaki boşlukların kaldırılması için trimMargin() işlevi kullanılır. Buna örnek şöyledir:


JavaScript:
val text = “””

|Tell me and forget.

|Teach me and I remember.

|Involve me and I learn.

|(Benjamin Franklin)

“”” trimMargin()

Burada varsayılan olarak kenar boşluğu öneki için şu sembol kullanılır: “ | “. (Bu sembolün klavye kısayolu şu şekildedir: “alt+124”) Yine de başka bir karakter parametre olarak iletilebilir. Mesela; trimMargin ( “>”).

String Templates (Dizgi Şablonları)

Dizgi değişmezleri, şablon ifadeleri de içerebilir. Bir şablon da dolar işaretiyle ( $ ) başlar ve isimden oluşur.

Örnek:


JavaScript:
val i = 10


println (“i = $i”) //prints “i = 10”


Ayrıca, süslü parantez içerisindeki ifadeye örnek şöyledir:


val s = “örnek”


println ( “ $s.uzunluk: ${s.uzunluk}” ) // “örnek.uzunluk 3” değerini yazdırır.

- Dolar işareti ($) ayrıca çok satırlı biz dizgiye (multiline strings), tanımlayıcının başlangıcı olarak bir sembolün önüne şu örnekteki gibi eklenebilir:

JavaScript:
val price = “””


${ ‘ $ ‘ }_9.99


“””
- Kotlin’de değişkenlerin ve veri yapılarının veri türü de vardır. veri türleri, derleyiciye değişken veya veri yapısıyla ne yapılması konusunda verilen izni ifade ederler. Veri türünü çıkarabilme özelliğine tür çıkarımı deniliyor. Örneğin, computers adındaki veri türüne bir tam sayı değeri atanırsa Kotlin computers sayısal veri türüne sahip olduğuna dair tür çıkarımını yapar ve böylece şu aritmetik işlemler yapılabilir:

JavaScript:
var computers = 10 // Bazı bilgisayarlar alıcı buluyor.


computers = 8


computers = computers + 3 // ekleme yapılıyor: 11


computers += 7 // ekleme: 18


computers -= 3 // çıkarma: 15


computers *= 2 // çarpma: 30


computers /= 3 // bölme: 10


println ( computers) // 10

-

Bu örnek kodlarda kullanılanlar, atama operatörleridir.


KategoriTipler
Tamsayılar (Integers)Byte, short, int, long
İşaretsiz Tamsayılar (Unsigned integers)Ubyte, ushort, Uint, Ulong
Kayan nokta sayıları-Kesirli sayılar (Floating-point numbers)Float, double
Boole (Değerinin doğru veya yanlış olabileceği değişken türü)Boolean
KarakterlerChar
Dizgeler-dizinlerStrings


Bir değişkenin başlatılmadan önce bildirilmesi için “:” belirtilir.

Örnek:


JavaScript:
val d : Dahili // değişkenin başlatılmadan bildirilmesi


d = 8 // değişken başlatıldı.


val e : String = “merhaba” // değişken açıkça yazıldı.


Println ( d ) // 8


Println ( e ) // merhaba


//değişkenler başlatıldığı için okunabilecek durumdalar.

Koleksiyonlar

Programlama esnasında verilerin daha sonra işlenmesi amacıyla gruplamak için Kotlin’de koleksiyonlar bulunur. Bu koleksiyonları şöyle sıralayabiliriz:

Listeler: Ögelerin sıralı koleksiyonları

Setler: Hem benzersiz hem sırasız öge koleksiyonları

Haritalar: Benzersiz anahtarlar olması ve sadece bir değerle eşlenmesi

-Bu koleksiyon türleri değiştirilebilir veya salt okunur kalabilir.

Listeler

Ögeleri sıraya göre saklar ve yenilenen ögeleri de barındırabilir. Salt okunur olan liste için “listOf()” işlevi kullanılır. Değişken bir liste oluşturmak içinse mutableListOf() işlevi kullanılır.

Ögelerin türü bildirilirken liste bildiriminden sonra açılı parantez ( <> ) ile tür eklenir.

Örnek:


JavaScript:
val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )


println ( ReadOnlyShapes ) // [monitör, klavye, fare]


val sekilerli : MutableList <String> = mutableListOf ( “monitör”, “klavye”, “fare” ) // Açık tür bildirimli değişken liste


println ( Bilgisayar donanım )

Bu değişken listelerdeki istenmeyen değişiklikleri önlemen için, değişken listelerin salt okunur görünümleri atanabilir:

Örnek:


JavaScript:
val shapes: MutableList<String> = mutableListOf( “monitör”, “klavye”, “fare” )


val shapesLocked: List<String> = shapes
Bir listedeki ögeye erişim için indekslenen erişim operatörü “[ ]” kullanılır.

Örnek:


JavaScript:
val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )


println ( “Listedeki ilk öge: ${readOnlyShapes [0]}” ) // listedeki ilk öge: monitör

-

Bir listedeki ilk veya son ögeyi almak için “.first” ve “.last” işlevleri kullanılır.

Örnek:


JavaScript:
val readOnlyShapes = listOf (“monitör”, “klavye”, “fare” )


println ( “Listedeki ilk öge: ${readOnlyShapes.first()} ) // Listedeki ilk öge: monitör

Not: .first() ve .last() uzantı işlevlerine örnektir. Bir nesne üzerinden bir uzantı işlevi çağırmak için işlevin adı, nesnenin sonuna nokta ( . ) eklenerek yazılmalıdır.

Bir listedeki öge sayını görmek için de “.count()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )


println ( “Bu listede ${readOnlyShapes.count()} öge var” ) // Bu listede 3 öge var.

Bir ögenin listede var olup olmadığının kontrolünü sağlamak için “in” operatörü kullanılır:

Örnek:


JavaScript:
val readOnlyShapes = listOf (“monitör”, “klavye”, “fare” )


println ( readOnlyShapes’te “ fare ” ) //doğru

Değiştirilebilir listeye öge eklemek veya listeden öge çıkarmak amaçlı olarak “.add()” ve “.remove()” işlevleri kullanılır

Örnek:


JavaScript:
val shapes : MutableList < String > = mutableListOf ( “monitör”, “klavye”, “fare” ) // Listeye “hoparlör”ü ekle.


Shape.add (“ hoparlör” )


Println ( shapes) // [monitör, klavye, fare, hoparlör]


Shapes.kaldır ( “hoparlör” )


Println (shapes) // [monitör, klavye, fare]

Ayar (Set)

Listeler sıralıdır, tekrarlanan ögelere izin verir ama kümeler sırasızdır, yalnızca benzersiz ögeleri barındırır. Salt okunur bir küme oluşturmak için setOf() işlevi; değişken bir küme oluşturmak için mutableSetOf() işlevi kullanılır. setler oluşturulurken depolanan öge türleri Kotlin tarafından anlaşılabilir. Türleri bildirmek için küme bildiriminden sonra açılı parantez “<>” içindeki tür eklenir.

Örnek:


JavaScript:
val readOnlyFruit = seOf ( “elma”, “çilek”, “muz”, “muz” ) //salt okunur küme


val meyve : MutableSet < String > = mutableSetOf (“elma”, “çilek”, “muz”, “muz”)


println ( readOnlyFruit ) // [elma, çilek, muz]

Bu örnekte, kümelerin yalnızca benzersiz ögeleri içermesi gerekliliği yüzünden, yinelenen ögelerin kaldırıldığı görülebilir.

Not: İstenmeyen değişikliklerin önlenmesi için değişken kümelerin salt okunur görünümleri şu şekilde elde edilir:

Örnek:


JavaScript:
val fruit: MutableSet<String> = mutableSetOf(“elma”, “çilek” “muz”, “muz” )


val fruitLocked: Set<String> = fruit

Not: Setler sırasız olduğu için belirli bir dizindeki ögeye erişilemiyor.

Bir kümedeki ögelerin sayısını görmek için “.count()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyFruit = setOf ( “elma”, “çilek” “muz”, “muz”)


println ( “Bu sette ${readOnlyFruit.count()} öge var” ) // Bu sette 3 öge var.

Bir ögenin kümede olup olmadığını görmek için “in” operatörü kullanılır:

Örnek:


JavaScript:
val readOnlyFruit = setOf ( “elma”, “çilek”, “muz”, “muz” )


println ( readOnlyFruit’te “çilek” ) //doğru


Değişken kümeye öge eklemek veya bu kümeden öge çıkarmak için “.add()” ve “.remove()” işlevleri kullanılır.

Örnek:

JavaScript:
val fruit : MutableSet < String > = mutableSetOf ( “elma”, “çilek”, “muz”, “muz” )


fruit.add ( “ejder meyvesi” ) // Sete “ejder meyvesi” eklendi.


println ( meyve ) // [elma, çilek, muz, ejder meyvesi]






meyve.kaldır ( “ejder meyvesi” ) // “ejder meyvesi”ni kümeden kaldır.


Println ( fruit ) // [elma, çilek, muz]

Harita (Map)

Haritalar, ögeleri anahtar/değer çiftleri olarak barındırırlar. Yani anahtara başvurarak değere erişilir. Bir listede bir dizin kullanmadan bir değer aramak istersek haritaları kullanabiliriz.

Not: Hangi değer alınmak siteniyorsa isteniyorsa Kotlin’in bu isteği yerine getirebilmesi için haritadaki her anahtarın benzersiz olması gerekir. Ayrıca bir haritada yinelenen değerler de olabilir.

-Salt okunur bir harita oluşturmak için mapOf() işlevi kullanılmalıdır. Değişken bir harita oluşturmak içinse mutableMapOf() işlevi kullanılmalıdır. Depolanan ögelerin türünü açıkça bildirmek için harita bildiriminden sonra açılı parantez ( <> ) içindeki anahtarlar ve değerlerin türleri eklendiğinde Kotlin böylelikle haritalar oluşturulurken depolanan ögelerin türünü çıkarabiliyor. Örneğin; MutableMap<String, Int>. (Anahtarların türü string, değerlerin türü Int)

-Harita oluştururken her anahtar ile ilgili değeri arasında kullanmaktır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 ) //salt okunur harita


println ( readOnlyJuiceMenu ) // {elma=100, vişne=190, portakal=100}


val JuiceMenu : MutableMap < String, Int > = mutableMapOf ( “elma” – 100, “çilek” – 190, “muz” – 100 )


println ( meyve suyu menü) // {elma=100, vişne=190, portakal=100}

Not: İstenmeyen değişikliklerin önlenmesi için değiştirilebilir haritaların salt okunur görünümleri şu şekilde elde edilir:

JavaScript:
val juiceMenu: MutableMap<String, Int> = mutableMapOf ( “apple” to 100, “vişne” to 190, “portakal” to 100)


val juiceMenuLocked: Map<String, Int> = juiceMenu

Haritadaki bir değere erişim sağlamak için indekslenmiş erişim operatörü [] anahtarıyla kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” -100 ) // Salt okunur harita


println ( “Elma suyunun değeri: ${readOnlyJuiceMenu[“elma”]}” ) // Elma suyunun değeri: 100

- Haritadaki ögelerin sayısını almak için “.count()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = MapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 ) //Salt okunur harita


println ( “Bu haritada ${readOnlyJucieMenu.count()} anahtar/değer çifti var” ) // Bu haritanın 3 anahtar/değer çifti var.

Değişken bir haritaya öge eklemek veya bu haritadan öge kaldırmak için “.put()” ve “.remove()” işlevleri kullanılır.

Örnek:


JavaScript:
val JuiceMenu : MutableMap < String, Int > = mutableMapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 )


JuiceMenu.put ( “coconut”, 150 ) // Haritaya 150 değeri olan coconut anahtarı eklenir.


Println ( juiceMenu ) // {elma=100, vişne=190, portakal=100, Hindistan cevizi=150}


juiceMenu.kaldır ( “portakal” ) // “portakal” anahtarını haritadan kaldırır.


println ( juiceMenu ) //{elma=100, vişne=190, Hindistan cevizi=150}

- Bir anahtarın haritaya eklenip eklenmediğini görmek için “.containsKey()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 )


println ( readOnlyJuiceMenu.includeKey ( “vişne” ))

- Haritanın anahtarlarının veya değerlerinin bir koleksiyona erişmek için “keys” ve “values” özellikleri kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal”- 100)


println ( readOnlyJuiceMenu.keys ) // [elma, vişne, portakal]


println ( readOnlyJuiceMenu.values ) // [100, 190, 100]

Not: Bir nesnenin özelliğine erişmek için nesnenin sonuna nokta (.) eklenerek özellik adı yazılır.

Bir anahtarın veya değerin haritada olup olmadığını görmek için in operatörü kullanılır.

Örnek:
+

JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100)


println (readOnlyJuiceMenu’da “portakal”.keys ) //doğru


println ( readOnlyJuiceMenu.values 200 ) // yanlış
Bu devam konumuzda da Kotlin kod parçacıklarından, operatörlerinden bahsettik ve örnekler verdik. Umarım faydası olmuştur.
Elinize Saglik
 

'Monster

Üye
27 Nis 2023
103
32
Kotlin’de String’ler

Merhaba değerli okurlarımız, Kotlin konularımızın dördüncüsünde yeni örneklerle karşınızdayız.

Kotlin’deki dizinler şu type ile temsil edilir: String. Bir dizgi değer ise çoğunlukla çift tırnak (“ ”) içerisindeki karakter dizisini barındırır. Konumuz içerisinde geçen string ifadeleri bazen dizgi olarak kullanılmıştır. Ayrıca Kotlin’de nesneler, bir değişkendeki üye işlevleri ve özellikleri aranabilen niteliktedir.

Örnek:


JavaScript:
val str = “1234 örnek”

Bir dizginin öğelerine indeksleme işlemiyle erişilebilir. Bu karakterler “for” döngüsü ile yenilenebilir:

For ( str’de c ) {

Print ( c )

}

Dizgileri dönüştüren tüm işlemlerden sonra oluşan sonuçları yeni bir string nesnede döndürür ve ayrıca orijinal dizgiyi değiştirmez.

JavaScript:
val dizi = “örnek”

println ( str . büyük harf ()) // yeni bir string nesnesi oluşturun ve yazdırın.

Println ( str ) // Orijinal dizgi aynı kalır.

Dizgilerin birleştirilebilmesi için “+” operatörü kullanılır. bu operatör ayrıca, ilk öge dizgi iken dizgileri diğer türdeki değerlerle birleştirmek için de kullanılır.

JavaScript:
val s = “abc” + 1

println ( s + “def” )

Dizgi Değişmezleri

Kotlin’de dizgi değişmezleri iki türdedir. Bunlar, “escaped strings”, “multiline strings” adını alır.

Escaped strings örneğine bakacak olursak,


JavaScript:
val s = “Hello word!\n”

Escaped, ters eğik çizgiyle ( \ ) yapılıyor.

Multiline strings örneğine bakarsak,


JavaScript:
Val text = “””

For ( c in “ foo” )

Print ( c )
Bu string’ler, yeni satırlar ve rastgele metin içerebilir. Üçlü tırnak ( “”” ) ile sonlandırılır. Escaped içermez.

Multiline strings’lerin başındaki boşlukların kaldırılması için trimMargin() işlevi kullanılır. Buna örnek şöyledir:


JavaScript:
val text = “””

|Tell me and forget.

|Teach me and I remember.

|Involve me and I learn.

|(Benjamin Franklin)

“”” trimMargin()

Burada varsayılan olarak kenar boşluğu öneki için şu sembol kullanılır: “ | “. (Bu sembolün klavye kısayolu şu şekildedir: “alt+124”) Yine de başka bir karakter parametre olarak iletilebilir. Mesela; trimMargin ( “>”).

String Templates (Dizgi Şablonları)

Dizgi değişmezleri, şablon ifadeleri de içerebilir. Bir şablon da dolar işaretiyle ( $ ) başlar ve isimden oluşur.

Örnek:


JavaScript:
val i = 10


println (“i = $i”) //prints “i = 10”


Ayrıca, süslü parantez içerisindeki ifadeye örnek şöyledir:


val s = “örnek”


println ( “ $s.uzunluk: ${s.uzunluk}” ) // “örnek.uzunluk 3” değerini yazdırır.

- Dolar işareti ($) ayrıca çok satırlı biz dizgiye (multiline strings), tanımlayıcının başlangıcı olarak bir sembolün önüne şu örnekteki gibi eklenebilir:

JavaScript:
val price = “””


${ ‘ $ ‘ }_9.99


“””
- Kotlin’de değişkenlerin ve veri yapılarının veri türü de vardır. veri türleri, derleyiciye değişken veya veri yapısıyla ne yapılması konusunda verilen izni ifade ederler. Veri türünü çıkarabilme özelliğine tür çıkarımı deniliyor. Örneğin, computers adındaki veri türüne bir tam sayı değeri atanırsa Kotlin computers sayısal veri türüne sahip olduğuna dair tür çıkarımını yapar ve böylece şu aritmetik işlemler yapılabilir:

JavaScript:
var computers = 10 // Bazı bilgisayarlar alıcı buluyor.


computers = 8


computers = computers + 3 // ekleme yapılıyor: 11


computers += 7 // ekleme: 18


computers -= 3 // çıkarma: 15


computers *= 2 // çarpma: 30


computers /= 3 // bölme: 10


println ( computers) // 10

-

Bu örnek kodlarda kullanılanlar, atama operatörleridir.


KategoriTipler
Tamsayılar (Integers)Byte, short, int, long
İşaretsiz Tamsayılar (Unsigned integers)Ubyte, ushort, Uint, Ulong
Kayan nokta sayıları-Kesirli sayılar (Floating-point numbers)Float, double
Boole (Değerinin doğru veya yanlış olabileceği değişken türü)Boolean
KarakterlerChar
Dizgeler-dizinlerStrings


Bir değişkenin başlatılmadan önce bildirilmesi için “:” belirtilir.

Örnek:


JavaScript:
val d : Dahili // değişkenin başlatılmadan bildirilmesi


d = 8 // değişken başlatıldı.


val e : String = “merhaba” // değişken açıkça yazıldı.


Println ( d ) // 8


Println ( e ) // merhaba


//değişkenler başlatıldığı için okunabilecek durumdalar.

Koleksiyonlar

Programlama esnasında verilerin daha sonra işlenmesi amacıyla gruplamak için Kotlin’de koleksiyonlar bulunur. Bu koleksiyonları şöyle sıralayabiliriz:

Listeler: Ögelerin sıralı koleksiyonları

Setler: Hem benzersiz hem sırasız öge koleksiyonları

Haritalar: Benzersiz anahtarlar olması ve sadece bir değerle eşlenmesi

-Bu koleksiyon türleri değiştirilebilir veya salt okunur kalabilir.

Listeler

Ögeleri sıraya göre saklar ve yenilenen ögeleri de barındırabilir. Salt okunur olan liste için “listOf()” işlevi kullanılır. Değişken bir liste oluşturmak içinse mutableListOf() işlevi kullanılır.

Ögelerin türü bildirilirken liste bildiriminden sonra açılı parantez ( <> ) ile tür eklenir.

Örnek:


JavaScript:
val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )


println ( ReadOnlyShapes ) // [monitör, klavye, fare]


val sekilerli : MutableList <String> = mutableListOf ( “monitör”, “klavye”, “fare” ) // Açık tür bildirimli değişken liste


println ( Bilgisayar donanım )

Bu değişken listelerdeki istenmeyen değişiklikleri önlemen için, değişken listelerin salt okunur görünümleri atanabilir:

Örnek:


JavaScript:
val shapes: MutableList<String> = mutableListOf( “monitör”, “klavye”, “fare” )


val shapesLocked: List<String> = shapes
Bir listedeki ögeye erişim için indekslenen erişim operatörü “[ ]” kullanılır.

Örnek:


JavaScript:
val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )


println ( “Listedeki ilk öge: ${readOnlyShapes [0]}” ) // listedeki ilk öge: monitör

-

Bir listedeki ilk veya son ögeyi almak için “.first” ve “.last” işlevleri kullanılır.

Örnek:


JavaScript:
val readOnlyShapes = listOf (“monitör”, “klavye”, “fare” )


println ( “Listedeki ilk öge: ${readOnlyShapes.first()} ) // Listedeki ilk öge: monitör

Not: .first() ve .last() uzantı işlevlerine örnektir. Bir nesne üzerinden bir uzantı işlevi çağırmak için işlevin adı, nesnenin sonuna nokta ( . ) eklenerek yazılmalıdır.

Bir listedeki öge sayını görmek için de “.count()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyShapes = listOf ( “monitör”, “klavye”, “fare” )


println ( “Bu listede ${readOnlyShapes.count()} öge var” ) // Bu listede 3 öge var.

Bir ögenin listede var olup olmadığının kontrolünü sağlamak için “in” operatörü kullanılır:

Örnek:


JavaScript:
val readOnlyShapes = listOf (“monitör”, “klavye”, “fare” )


println ( readOnlyShapes’te “ fare ” ) //doğru

Değiştirilebilir listeye öge eklemek veya listeden öge çıkarmak amaçlı olarak “.add()” ve “.remove()” işlevleri kullanılır

Örnek:


JavaScript:
val shapes : MutableList < String > = mutableListOf ( “monitör”, “klavye”, “fare” ) // Listeye “hoparlör”ü ekle.


Shape.add (“ hoparlör” )


Println ( shapes) // [monitör, klavye, fare, hoparlör]


Shapes.kaldır ( “hoparlör” )


Println (shapes) // [monitör, klavye, fare]

Ayar (Set)

Listeler sıralıdır, tekrarlanan ögelere izin verir ama kümeler sırasızdır, yalnızca benzersiz ögeleri barındırır. Salt okunur bir küme oluşturmak için setOf() işlevi; değişken bir küme oluşturmak için mutableSetOf() işlevi kullanılır. setler oluşturulurken depolanan öge türleri Kotlin tarafından anlaşılabilir. Türleri bildirmek için küme bildiriminden sonra açılı parantez “<>” içindeki tür eklenir.

Örnek:


JavaScript:
val readOnlyFruit = seOf ( “elma”, “çilek”, “muz”, “muz” ) //salt okunur küme


val meyve : MutableSet < String > = mutableSetOf (“elma”, “çilek”, “muz”, “muz”)


println ( readOnlyFruit ) // [elma, çilek, muz]

Bu örnekte, kümelerin yalnızca benzersiz ögeleri içermesi gerekliliği yüzünden, yinelenen ögelerin kaldırıldığı görülebilir.

Not: İstenmeyen değişikliklerin önlenmesi için değişken kümelerin salt okunur görünümleri şu şekilde elde edilir:

Örnek:


JavaScript:
val fruit: MutableSet<String> = mutableSetOf(“elma”, “çilek” “muz”, “muz” )


val fruitLocked: Set<String> = fruit

Not: Setler sırasız olduğu için belirli bir dizindeki ögeye erişilemiyor.

Bir kümedeki ögelerin sayısını görmek için “.count()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyFruit = setOf ( “elma”, “çilek” “muz”, “muz”)


println ( “Bu sette ${readOnlyFruit.count()} öge var” ) // Bu sette 3 öge var.

Bir ögenin kümede olup olmadığını görmek için “in” operatörü kullanılır:

Örnek:


JavaScript:
val readOnlyFruit = setOf ( “elma”, “çilek”, “muz”, “muz” )


println ( readOnlyFruit’te “çilek” ) //doğru


Değişken kümeye öge eklemek veya bu kümeden öge çıkarmak için “.add()” ve “.remove()” işlevleri kullanılır.

Örnek:

JavaScript:
val fruit : MutableSet < String > = mutableSetOf ( “elma”, “çilek”, “muz”, “muz” )


fruit.add ( “ejder meyvesi” ) // Sete “ejder meyvesi” eklendi.


println ( meyve ) // [elma, çilek, muz, ejder meyvesi]






meyve.kaldır ( “ejder meyvesi” ) // “ejder meyvesi”ni kümeden kaldır.


Println ( fruit ) // [elma, çilek, muz]

Harita (Map)

Haritalar, ögeleri anahtar/değer çiftleri olarak barındırırlar. Yani anahtara başvurarak değere erişilir. Bir listede bir dizin kullanmadan bir değer aramak istersek haritaları kullanabiliriz.

Not: Hangi değer alınmak siteniyorsa isteniyorsa Kotlin’in bu isteği yerine getirebilmesi için haritadaki her anahtarın benzersiz olması gerekir. Ayrıca bir haritada yinelenen değerler de olabilir.

-Salt okunur bir harita oluşturmak için mapOf() işlevi kullanılmalıdır. Değişken bir harita oluşturmak içinse mutableMapOf() işlevi kullanılmalıdır. Depolanan ögelerin türünü açıkça bildirmek için harita bildiriminden sonra açılı parantez ( <> ) içindeki anahtarlar ve değerlerin türleri eklendiğinde Kotlin böylelikle haritalar oluşturulurken depolanan ögelerin türünü çıkarabiliyor. Örneğin; MutableMap<String, Int>. (Anahtarların türü string, değerlerin türü Int)

-Harita oluştururken her anahtar ile ilgili değeri arasında kullanmaktır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 ) //salt okunur harita


println ( readOnlyJuiceMenu ) // {elma=100, vişne=190, portakal=100}


val JuiceMenu : MutableMap < String, Int > = mutableMapOf ( “elma” – 100, “çilek” – 190, “muz” – 100 )


println ( meyve suyu menü) // {elma=100, vişne=190, portakal=100}

Not: İstenmeyen değişikliklerin önlenmesi için değiştirilebilir haritaların salt okunur görünümleri şu şekilde elde edilir:

JavaScript:
val juiceMenu: MutableMap<String, Int> = mutableMapOf ( “apple” to 100, “vişne” to 190, “portakal” to 100)


val juiceMenuLocked: Map<String, Int> = juiceMenu

Haritadaki bir değere erişim sağlamak için indekslenmiş erişim operatörü [] anahtarıyla kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” -100 ) // Salt okunur harita


println ( “Elma suyunun değeri: ${readOnlyJuiceMenu[“elma”]}” ) // Elma suyunun değeri: 100

- Haritadaki ögelerin sayısını almak için “.count()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = MapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 ) //Salt okunur harita


println ( “Bu haritada ${readOnlyJucieMenu.count()} anahtar/değer çifti var” ) // Bu haritanın 3 anahtar/değer çifti var.

Değişken bir haritaya öge eklemek veya bu haritadan öge kaldırmak için “.put()” ve “.remove()” işlevleri kullanılır.

Örnek:


JavaScript:
val JuiceMenu : MutableMap < String, Int > = mutableMapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 )


JuiceMenu.put ( “coconut”, 150 ) // Haritaya 150 değeri olan coconut anahtarı eklenir.


Println ( juiceMenu ) // {elma=100, vişne=190, portakal=100, Hindistan cevizi=150}


juiceMenu.kaldır ( “portakal” ) // “portakal” anahtarını haritadan kaldırır.


println ( juiceMenu ) //{elma=100, vişne=190, Hindistan cevizi=150}

- Bir anahtarın haritaya eklenip eklenmediğini görmek için “.containsKey()” işlevi kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100 )


println ( readOnlyJuiceMenu.includeKey ( “vişne” ))

- Haritanın anahtarlarının veya değerlerinin bir koleksiyona erişmek için “keys” ve “values” özellikleri kullanılır.

Örnek:


JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal”- 100)


println ( readOnlyJuiceMenu.keys ) // [elma, vişne, portakal]


println ( readOnlyJuiceMenu.values ) // [100, 190, 100]

Not: Bir nesnenin özelliğine erişmek için nesnenin sonuna nokta (.) eklenerek özellik adı yazılır.

Bir anahtarın veya değerin haritada olup olmadığını görmek için in operatörü kullanılır.

Örnek:
+

JavaScript:
val readOnlyJuiceMenu = mapOf ( “elma” – 100, “vişne” – 190, “portakal” – 100)


println (readOnlyJuiceMenu’da “portakal”.keys ) //doğru


println ( readOnlyJuiceMenu.values 200 ) // yanlış
Bu devam konumuzda da Kotlin kod parçacıklarından, operatörlerinden bahsettik ve örnekler verdik. Umarım faydası olmuştur.
Eline sağlık
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.