Котлин немного странный.



Если код на Java такой:

MyClass myObject = new MyClass("abc", n -> System.out.println(n));



То на Котлине это будет

val myObject = MyClass("abc") { n -> println(n) }



Во-первых, кому помешало слово new? А во вторых, почему лямбда-функция из второго аргумента аргумента переместилась куда-то наружу, за скобки? В чем логика-то?



С непривычки мозгу это как-то сложно распарсить.



Upd. Чтобы строить DSL