126 votes

En Scala, que signifie exactement 'val a: A = _' (trait de soulignement)?

À quoi exactement val a: A = _ initialise-t-il une valeur? Est-ce un null typé? Merci.

149voto

Paul Butcher Points 5349

val a: A = _ est une erreur de compilation. Par exemple:

scala> val a: String = _
<console>:1: error: unbound placeholder parameter
       val a: String = _
                       ^

De quoi le travail est - var a: A = _ (note var au lieu de val). Chuck dit, dans sa réponse, ce initialise la variable à une valeur par défaut. De la Scala de Spécification de Langage:

0 si T est de type Int ou un de ses sous-intervalle types,
0L si T est Long,
0.0 f si T est Float,
0.0 d si T est Double,
faux si T est de type Boolean,
() si T est l'Unité,
null pour tous les autres types de T.

34voto

Chuck Points 138930

Il 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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X