0Pricing
Kotlin Academy · Ders

with

İşlemleri gruplayın

with, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.

with İşlevi

with, bir nesneyi çağrının alıcısı olarak değil, argüman olarak alan ve bu nesnenin this olduğu bir blok çalıştıran kapsam işlevdir. Lambda sonucunu döndürür.

Temel with Kullanımı

Nesneyi with'e geçirir ve blok içinde üyelerine doğrudan erişirsiniz.

fun main() {
    val name = "Kotlin"
    val description = with(name) {
        "$this has $length characters"
    }
    println(description)
}

Birden Çok İşlemi Gruplama

with, aynı nesne üzerinde birden çok yöntemi çağırmanız veya birden çok özelliği okumanız gerektiğinde öne çıkar. Nesne adını tekrarlamanızı önler.

fun main() {
    val sb = StringBuilder()
    with(sb) {
        append("Line 1\n")
        append("Line 2\n")
        append("Line 3")
    }
    println(sb)
}

with this Kullanır

run ve apply gibi with de nesneyi this olarak sunar; bu nedenle üye erişimi için ön ek gerekmez.

data class Rectangle(val width: Int, val height: Int)

fun main() {
    val rect = Rectangle(4, 5)
    val area = with(rect) {
        width * height
    }
    println("Area: $area")
}

with Lambda Sonucunu Döndürür

Bloktaki son ifadenin değeri, tıpkı run'da olduğu gibi with'in sonucu olur.

fun main() {
    val list = listOf(1, 2, 3, 4, 5)
    val summary = with(list) {
        "Size=$size, First=${first()}, Last=${last()}"
    }
    println(summary)
}

with ve run

with(obj) { ... } ve obj.run { ... } neredeyse aynı işi yapar. Fark söz dizimindedir:

  • run, nesne üzerinde çağrılan bir genişletme işlevdir; bu nedenle güvenli çağrılarla iyi çalışır.
  • with, nesneyi argüman olarak alır ve "bu nesneyle çalış" şeklinde doğal bir okuma sağlar.
fun main() {
    val s = "data"
    val a = with(s) { uppercase() }
    val b = s.run { uppercase() }
    println("$a $b")
}

with Null Olabilir Değerler için Kullanılmaz

Nesne bir argüman olarak geçirildiği için with, güvenli çağrı işleciyle düzgün biçimde birleştirilemez. Null olabilir alıcılar için obj?.run { } veya obj?.let { } kullanmayı tercih edin.

fun main() {
    val name: String? = "Eve"
    name?.run { println("Hello $this") }
    println("with is awkward for nullables")
}

Okuma ve Hesaplamayı Birlikte Yapma

Yaygın bir kalıp, birden çok özelliği okumak ve tek bir sonucu anlaşılır bir blok içinde hesaplamaktır.

data class Order(val items: Int, val pricePerItem: Int)

fun main() {
    val order = Order(3, 20)
    val total = with(order) {
        items * pricePerItem
    }
    println("Total: $total")
}

with ile Dizeler Oluşturma

buildString veya StringBuilder ile birlikte kullanıldığında with, ön eksiz ve temiz dize oluşturma kodu sağlar.

fun main() {
    val report = StringBuilder()
    with(report) {
        appendLine("Report")
        appendLine("======")
        appendLine("All good")
    }
    print(report)
}

Bir Koleksiyonda with Kullanımı

Adını tekrarlamadan aynı liste üzerinde birçok koleksiyon işlevini çağırabilirsiniz.

fun main() {
    val numbers = listOf(10, 20, 30)
    with(numbers) {
        println("Sum: ${sum()}")
        println("Max: ${max()}")
        println("Average: ${average()}")
    }
}

with Ne Zaman Kullanılmalı

Null olmayan bir nesneniz varsa ve bu nesne üzerinde bir grup işlem gerçekleştirmek, isteğe bağlı olarak da bir sonuç döndürmek istiyorsanız with seçin. Bu, "bir süre bu nesneyle çalışıyorum" anlamını taşır.

Hızlı Kontrol

with nesnesini nasıl alır?

Özet

with, argüman olarak geçirilen tek bir null olmayan nesne üzerindeki işlemleri gruplar, nesneyi this olarak sunar ve lambda sonucunu döndürür. Argüman söz dizimi kullanan bir run gibidir. Sonraki bölümde her durum için doğru kapsam işlevini nasıl seçeceğinizi öğreneceksiniz.

Sıkça Sorulan Sorular

“with” dersi ücretsiz mi?

Evet — “with” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.

“with” dersinde ne öğreneceğim?

İşlemleri gruplayın Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“with” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. let ve run
  2. apply ve also
  3. with
  4. Doğru Olanı Seçme
← Kotlin Academy Sayfasına Dön