_val listPlans: List<Plan> = newPlans.mapTry {
it.data.map {
Plan(it.id, it.name, it.phone, it.desc, it.email)
}.toList()
}
_
Kotlinの初心者がコードを記述し、IntelliJがそれをPlan(it.id, it.name, it.phone, it.desc, it.email)
で強調表示し、囲んでいるラムダの暗黙的なパラメーターが隠されていると述べています。
これをそのままにしても大丈夫ですか?そうでない場合、何に置き換えることができますか?
ラムダをネストしているため、「it」は最も内側のラムダの暗黙的なパラメータを表します。この警告は主に読みやすさの目的であり、ラムダをネストすると「それ」の意味がより不明確になるため、混乱を避けるためです。ネストされたラムダに対してラムダパラメータを明示的に指定することをお勧めします。
val listPlans: List<Plan> = newPlans.mapTry { plan ->
plan.data.map {
Plan(it.id, it.name, it.phone, it.desc, it.email)
}.toList()
}
または
val listPlans: List<Plan> = newPlans.mapTry {
it.data.map { planData ->
Plan(planData.id, planData.name, planData.phone, planData.desc, planData.email)
}.toList()
}
または両方:
val listPlans: List<Plan> = newPlans.mapTry { plan ->
plan.data.map { planData ->
Plan(planData.id, planData.name, planData.phone, planData.desc, planData.email)
}.toList()
}
これが理由の1つであることを指摘するのは価値があります JetBrainsチームが「it」機能を削除することを計画している