Comment puis-je pointer la bonne variable dans Kotlin en utilisant 'this' ou 'label'?
J'ai créé un code comme ci-dessous. La partie délicate est dans apply
. Ce dont j'ai besoin, c'est d'attribuer roles
de UserService
à roles
dans une nouvelle instance de User
.
data class User(
var userId: String? = "",
var roles: List<String> = emptyList()
)
class UserService {
fun getUser() = User("test_user").apply { roles = roles.asList() }
var roles: Array<String> = listOf("role1","role2").toTypedArray()
}
Je sais que je peux changer le nom roles
en UserService
. Je me demande s'il est possible d'indiquer correctement la variable et de garder le même nom.
Une façon de le faire est de passer à l'utilisation de also
, qui vous donne la même chose sans l'ambiguïté :
fun getUser() = User("test_user").also { it.roles = roles.asList() }
Une autre façon est d'étiqueter explicitement que le côté droit roles
vient UserService
:
fun getUser() = User("test_user").apply { roles = [email protected]() }
Personnellement, je trouve la also
méthode beaucoup plus facile à lire, mais elle est subjective.
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots