λ
Size: a a a
λ
(
(
(
(::funMapAtoB + ::funMapBtoC)(a)
, а в котлине можно(
(
VY
(
VY
R:
(
String.eq() // получение инстансаТак вот смысл в чем - вне скоупа лямбды
.run {
"1" eqv "2"
}
run
вы не можете сравнивать строки через eqv
, зато внутри скоупа строки приобретают новую функциональность засчет того, что контекст переносится внутрь инстанса тайпкласса Eq
для строк. Представьте теперь, что у вас не String.eq()
, а, например, какой-нибудь AnalyticsContext
, внутри которого инкапсулирован инстанс какого-нибудь веб-клиента, который отсылает аналитику куда-нибудь. И вы пишете:AnalyticsContext().run { // перенос контекстаИ смысл такого подхода в том, что вам не приходится пользоваться, к примеру, DI-ем, потому что вся функциональность поделена на такие вот контексты, которые имеют максимум пару зависимостей. Вооот
Event(id, type).send() /* вне AnalyticsContext тип Event не имеет поведения "send" */
}
(
(
R:
e
R:
(
e
R: