Blog

kotlin で instance_eval 的なことをしたい

kotlin では ruby 的な block つきメソッド呼び出しができるので、以下のようにすると instance_eval 的な、rubyish な DSL もめっちゃ簡単に実現できる〜〜

class Foo {
    fun bar(cb: Foo.() -> Unit) {
        apply(cb)
    }

    fun berk() {
        println("berk")
    }
}

fun main(args: Array<String>) {
    Foo().bar() {
        berk()
    }
}