fun <T> T.apply(f: T.() -> Unit): T { f(); return this }

apply() tüm tipler için belirlenmiş bir extension function dır. apply() fonksiyonu uygulanan nesnenin özelliklerine direk olarak apply kod bloğu içerisinden erişilebilir.

var file = File(dir)
file.mkdirs()

veya Java ile yazacak olursak

File makeDir(String path) {
    File result = new File(path);
    result.mkdirs();
    return result;
}

Bu kodu aşağıdaki yapıya çevirebiliriz.

File(dir).apply { mkdirs() }