À quoi val a: A = _initialise exactement une valeur? Est-ce un null typé? Merci.
À quoi val a: A = _initialise exactement une valeur? Est-ce un null typé? Merci.
Réponses:
val a: A = _est une erreur de compilation. Par exemple:
scala> val a: String = _
<console>:1: error: unbound placeholder parameter
val a: String = _
^
Ce qui fonctionne est var a: A = _(notez varau lieu de val). Comme Chuck le dit dans sa réponse, cela initialise la variable à une valeur par défaut. À partir de la spécification du langage Scala:
0 si T est Int ou l'un de ses types de sous-
plages , 0L si T est Long,
0.0f si T est Float,
0.0d si T est Double,
false si T est Boolean,
() si T est Unit,
nul pour tous les autres types T.
val?
val a: Int = _c'est probablement une erreur de compilation car ce serait une mauvaise pratique si cela fonctionnait. Ce ne serait qu'une manière obscure d'écrire val a: Int = 0. Définir a varsur une valeur par défaut a du sens car varon s'attend à ce que a change, mais a valest fixe, la meilleure pratique serait donc d'attribuer une valeur explicitement.
Il s'initialise aà la valeur par défaut du type A. Par exemple, la valeur par défaut d'un Int est 0 et la valeur par défaut d'un type de référence est null.
NotNulltrait? :-)
_atout NotNull.