【问题标题】:Can I use kotlin "also" function just to shorten the code? [closed]我可以使用 kotlin“也”功能来缩短代码吗? [关闭]
【发布时间】:2019-04-11 11:20:59
【问题描述】:

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

例如,而不是这个:

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

我写过这个:

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

【问题讨论】:

  • 我不会像那样隐藏无关的副作用。
  • 返回类型不会一样,所以它不像看起来那么无害。
  • This article 建议不要使用这些函数来缩短代码。

标签: kotlin lambda readability


【解决方案1】:

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

如果切换一个句点应该导致显示统计信息,那么拥有一个单独的 togglePeriod() 方法体是非常有意义的,它很好地显示了意图。 also() 感觉不可读。

【讨论】:

  • 同意。清晰和可读性通常比简洁更重要。有时,这些东西会一起出现;在这里,我不认为他们这样做,所以单独的行会更好。此外,在名为togglePeriod() 的方法中显示统计数据本身似乎令人困惑!我建议要么将其重命名为 togglePeriodAndShowStats(),要么将两者分开。
猜你喜欢
  • 2013-11-05
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 2020-08-29
  • 1970-01-01
  • 2021-03-01
  • 1970-01-01
相关资源
最近更新 更多