Kotlin 2.0'dan altı ay sonra Kotlin 2.10, diğer şeylerin yanı sıra K2 derleyicisini genişleten ilk küçük sürüm olarak piyasaya sürüldü. Ayrıca Apple'ın Swift'ine doğrudan bir bağlantı vardır ve WebAssembly'nin araç zinciri aşamalı olarak derlenebilir.
Duyuru
Kotlin 1.9.20'de beta olarak tanıtılan ve Kotlin 2.0'da kararlı olarak işaretlenen K2 derleyicisi, mevcut sürümde ek derleyici kontrolleri de alıyor. JetBrains ayrıca K2 için alfa durumunda kalan kapt (Kotlin Ek Açıklama İşleme Aracı) eklentisinde de bazı iyileştirmeler yaptı.
Daha fazla eğer, daha fazla $$ ve esnek çevrimiçi çıkış
Kotlin 2.10, tümü önizleme olarak işaretlenen ve derleyici bayrakları aracılığıyla açık aktivasyon gerektiren üç söz dizimi değişikliği sunuyor. Koruma koşullarıyla şunları yapabilirsiniz: when
-Daha fazlasını eklemek için bloklar if
Bireysel şubeler için ek koşulların kapsamını genişletin. Bloklar dalları koruyucu koşullarla veya koruyucu koşullar olmadan karıştırabilir. Kotlin belgelerinde bir örnek bulunabilir:
sealed interface Animal {
data class Cat(val mouseHunter: Boolean) : Animal {
fun feedCat() {}
}
data class Dog(val breed: String) : Animal {
fun feedDog() {}
}
}
fun feedAnimal(animal: Animal) {
when (animal) {
// Branch with only the primary condition.
// Returns `feedDog()` when `Animal` is `Dog`
is Animal.Dog -> animal.feedDog()
// Branch with both primary and guard conditions.
// Returns `feedCat()` when `Animal` is `Cat` and is not `mouseHunter`
is Animal.Cat if !animal.mouseHunter -> animal.feedCat()
// Returns "Unknown animal" if none of the above conditions match
else -> println("Unknown animal")
}
}
Satır içi işlevler için de bir eklenti var. Yerel olmayan çıkış artık orada continue
VE break
izin verilmiş. Önceden, gömme fonksiyonunun dışındaki bir lambdadan çıkmak basitçe return
izin verilmiş.
Kullanım sırasında konforda küçük bir iyileşme var $
karakterleri gerçek dizelere dönüştürür. Dize enterpolasyonunu gösterdiğinden, dolar işaretinin değişmez değer içinde kullanımının yapı aracılığıyla yapılması gerekiyordu. ${'$'}
gerçekleşecek. Kotlin 2.10 artık çoklu dize enterpolasyonunu tanıtıyor: enterpolasyonlu bir dizenin önündeki dolar işaretlerinin sayısı, kaç karakterin bir dize enterpolasyonunu tetiklediğini gösterir. Aşağıdaki örnek, bir JSON şeması kullanan prosedürü göstermektedir:
val KClass<*>.jsonSchema : String
get() = $$"""
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.com/product.schema.json",
"$dynamicAnchor": "meta"
"title": "$${simpleName ?: qualifiedName ?: "unknown"}",
"type": "object"
}
"""
WebAssembly ve Swift
WebAssembly uygulamaları oluştururken, Kotlin/wasm araç zinciri artık her değişiklik için kodun tamamını yeniden derlemek zorunda kalmamak için artımlı derleme sunuyor.
2023'ün sonlarında yayınlanan platformlar arası geliştirme yol haritasında JetBrains, listenin başında daha iyi iOS bağlantısına sahipti ve Kotlin 2.10, iki alanda ileriye doğru büyük bir adımı temsil ediyor.
Swift'e entegre edilmiş yerel kodla platformlar arası geliştirme gibi Kotlin ve Swift'i birleştiren uygulamalar, daha önce Objective-C'den sapmayı gerektiriyordu. JetBrains, mevcut sürümle birlikte Swift dışa aktarımını sunuyor ancak hâlâ deneysel olarak işaretleniyor.
Ayrıca Apple ekosistemiyle başka yerlerdeki etkileşimde de bir gelişme var: platform iosArm64
artık Kotlin/Yerel hedeflerin ana kategorisinde (Seviye 1) yer alıyor.
Gradle ile etkileşim de dahil olmak üzere diğer yenilikleri Kotlin blogunda bulabilirsiniz.
(Ben)
Bir yanıt yazın