首页 > 解决方案 > 为什么 Android Studio 在创建 Fragment 时使用 let 而不是 run

问题描述

Fragment当您使用 File -> New -> Fragment创建文件时,Android Studio 会创建此代码

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    arguments?.let {
        param1 = it.getString(ARG_PARAM1)
        param2 = it.getString(ARG_PARAM2)
    }
}

因为可以省略,所以使用runon不是更好吗?我知道你使用零安全,但也给你,而不是argumentsitletrunBundleBundle?

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    arguments?.run {
        param1 = getString(ARG_PARAM1)
        param2 = getString(ARG_PARAM2)
    }
}

let它使用而不是有特殊原因run吗?

标签: androidkotlin

解决方案


FWIW,这些都没有真正意义,因为它们都返回一个值。

由于您不想在这种情况下返回值:

  • 如果要使用it,请使用also代替let
  • 如果要使用接收器,请使用apply而不是run.

而且...不,我不知道为什么 Android Studio 会let使用run.


推荐阅读