我看到使用Kotlin语言基于WebFlux httpClient(高级Netty)创建GET请求。但是我不知道这些代码元素是什么意思:
return client
.get()
.uri{
it.path(%some_path%)
.queryParam("%some_param%", value)
.build()
}.header(...)
.awaitExchange()
.awaitBody()
这是什么意思?
'uri'之后的花括号是什么意思?
这是Kotlin专用的语法吗?
的确如此。大括号及其内容表示一个lambda,而it
是一种快捷方式:对于具有单个参数的lambda,您不必自己命名。 Kotlin提供了一个隐式命名:“ it”。
所以,在您的示例中,uri {...}是什么? lambda后面跟这个关键字是什么?好吧,uri
只是netty客户端上的成员方法,它以lambda作为参数。但是,当唯一的参数是lambda时,Kotlin允许省略函数括号。因此,您只需写uri({ ... })
,而不是写uri { .. }
。
供参考:
科特林官方文档:
关于Kotlin中作为函数参数的lambda的另一个响应:https://stackoverflow.com/a/60868804/2678097