我想知道是否有一个标准函数,其行为与let
类似但返回接收者本身,而不是block
计算的值。
我的代码let
:
fun rightParts(s: Lexeme) =
rightPartsByLeft[s] ?:
ArrayList<Rule>() let { rightPartsByLeft[s] = it; it }
^ here's the statement which I would
like to avoid
所以,如果会有这样一个名为btw
的函数,上面的代码会缩短一点,变得更具表现力:
fun rightParts(s: Lexeme) =
rightPartsByLeft[s] ?:
ArrayList<Rule>() btw { rightPartsByLeft[s] = it }
当然,我可能会自己编写这个函数并将其包含在每个项目中,但我想,人们会想要一个具有这种语义的函数。
或者还有另一种在Kotlin做同样事情的好方法吗?