Я новичок в Scala. импортировать функцию из другого языка виртуальной машины Java и помощник показывает мне эту подписьпередать анонимную функцию как параметр
Это путает меня. В оригинальном языке я разработал эту функцию, чтобы работать как этот
dsl {
method { }
header { }
}
Но как это будет выглядеть в Scala?
В другом языке dsl
выглядит как этот
class GRLMessageDSL : GRLMessage() {
fun dsl(closure: GRLMessageDSL.() -> Unit) : GRLMessage {
closure()
return this
}
fun method(closure: GRLMessageDSL.() -> GRLProtocol.GRLMethod) : GRLMessage {
methodType = closure()
return this
}
fun headers(closure: GRLMessageDSL.() -> Unit) : GRLMessage {
closure()
return this
}
fun header(closure: GRLMessageDSL.() -> Pair<String, String>) : GRLMessage {
headerMap += closure()
return this
}
fun multipart(closure: GRLMessageDSL.() -> IGRLMultipart) : GRLMessage {
multipartObject = closure()
return this
}
Так как его использование будет выглядеть в Scala? – lapots
'val f = {x: Int => x * x}' является синтаксическим suger для 'new Function1 [Int, Int] {def apply (x: Int) = x * x}'. Так intellij показывает второй – pamu
Я имею в виду 'new GRLMessageDSL(). Dsl {???? } ' – lapots