Menu
Coddy logo textTech

Yakalanan Değişkenler

Coddy'nin Kotlin Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 29 / 63.

Bir lambda, çevresindeki kapsamdan değişkenleri kullanabilir. Buna yakalama denir. Yakalanan bir var değişirse, sonraki çağrı onun güncel değerini görür. Yakalamalar ayrıca döndürülen bir lambda’nın çağrılar arasında durumu korumasını sağlar.

main içinde:

var offset = 2
val addOffset = { n: Int -> n + offset }
offset = 5
println(addOffset(3))

Lambda çağrıldığında geçerli olan beş değerindeki offset'i okur.

Yakalanan değiştirilebilir bir değişken, özgün değerinin dondurulmuş bir kopyası değil, paylaşılan durumdur.

challenge icon

Görev

Orta

value: Int, offset: Int parametreleriyle capturedOffset işlevini tamamlayın. Çevresindeki offset'i tamsayı bağımsız değişkenine ekleyen bir lambda oluşturun, ardından bunu value'ya uygulayın.

Yukarıda daha sıkı sınırlar belirtilmediği sürece koleksiyonlar her düzeyde en fazla 100 öğe içerir ve tamsayı bağımsız değişkenleri ile tamsayı koleksiyon değerleri -1000 ile 1000 arasındadır. Ayrıştırma için sağlanan metin, açıklandığı gibi geçersiz veya aralık dışı gösterimler içerebilir.

Int türünde bir değer döndürün. Sağlanan girdi/çıktı kodunu koruyun. Bu kod, skaler bağımsız değişkenleri satır başına bir tane okur; bir liste, sayısının ardından öğelerini içerir ve bir eşlem, giriş sayısının ardından her anahtar ile değeri içerir. İç içe listeler, her satır için sayı ve öğeler biçimini tekrarlar. Sağlanan main, dönüş değerini ve ardından bir satır sonu yazdırır. Listeler, Kotlin'in standart köşeli parantezli biçimini kullanır; ek etiket yazdırmayın.

Kendin dene

fun capturedOffset(value: Int, offset: Int): Int {
    // Çözümünüzü buraya yazın.
    return 0
}
fun main() {
    val value = readln().toInt()
    val offset = readln().toInt()
    println(capturedOffset(value, offset))
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Kotlin playground