我可以使用kotlin“还”功能只是为了缩短代码吗?

时间:2019-04-11 11:21:00

标签: kotlin lambda readability kotlin-also

kotlin文档是否说过使用also()函数只是为了减少代码行?我的意思是在lambda主体中执行一些无关的工作,而不使用it参数。

例如,代替此:

fun togglePeriod() {
    viewModel.togglePeriod()
    showStatistics()
}

我写了这个:

fun togglePeriod() = viewModel.togglePeriod().also { showStatistics() }

1 个答案:

答案 0 :(得分:3)

该代码应可读并​​表达其意图。为了减少行数而减少行数很少会提高可读性。

如果切换一个周期应该导致显示统计信息,那么拥有一个单独的togglePeriod()方法主体是很有意义的,那么它可以很好地显示意图。 also()难以理解。