Par exemple, si j'ai la classe de données suivante :
data class Data(
val name: String = "",
val number: Long = 0
)
Et les fonctions qui peuvent retourner null
:
fun newName(): String? {}
fun newNumber(): Long? {}
Je sais que je peux utiliser ce qui suit pour utiliser la valeur des fonctions si elles ne sont pas null
:
val newName = newName()
val newNumber = newNumber()
val data = Data(
if (newName != null) newName else "",
if (newNumber != null) newNumber else 0
)
Mais existe-t-il un moyen d'utiliser simplement la valeur par défaut spécifiée dans le constructeur de l'application Data
lorsque les valeurs sont null
?
Je n'ai rien trouvé dans la documentation, mais j'espérais que quelque chose comme ça fonctionnerait :
val data = Data(newName()?, newNumber()?)
Mais cela ne compile pas.
3 votes
Au lieu de
if (newName != null) newName else ""
vous pouvez simplement utilisernewName ?: ""
. Ça s'appelle l'opérateur Elvis.0 votes
@Mibac Oh, c'est vrai, j'ai oublié ça ! C'est définitivement plus succinct, mais ça n'utilise toujours pas le paramètre par défaut défini dans le constructeur de la classe.