【发布时间】:2018-04-12 21:54:53
【问题描述】:
我有一些代码:
private fun getTouchX(): Int {
arguments ?: return centerX()
return if (arguments.containsKey(KEY_DOWN_X)) {
arguments.getInt(KEY_DOWN_X)
} else {
centerX()
}
}
private fun centerX() = (views.rootView?.width ?: 0) / 2
我想缩短它。
在getTouchX函数中,有两个重复的返回条件。 (即centerX)
我尝试过这样做:
private fun getTouchX(): Int {
if (arguments == null || !arguments.containsKey(KEY_DOWN_X)) {
return centerX()
}
return arguments.getInt(KEY_DOWN_X)
}
然而,它看起来更像 Java 而不是 Kotlin。
我怎么能用惯用的 Kotlin 写这个?
【问题讨论】:
-
通过告诉我们什么是参数来帮助我们。这不是一个简单的映射,因为我不熟悉 getInt,所以它是什么数据结构?
-
@Mikezx6r 感谢您的提问。 arguments 是在 Android Fragment 中使用的 Bundle 对象。 developer.android.com/reference/android/os/Bundle.htmlandroid.googlesource.com/platform/frameworks/base/+/master/core/…
标签: kotlin