2017-09-29 2 views
0

Je regardais juste un exemple de lecture/scala avec hibernation. Je classe affaire je trouve quelque chose comme ça ....qu'est-ce que "_" dans la classe scala

class Buddy(first: String, last: String) { 
@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
var id: Int = _ 

var firstName: String = first 
var lastName: String = last 

def this() = this (null, null) 

override def toString = id + " = " + firstName + " " + lastName 
} 

Quelqu'un peut-il me expliquer sens de cette ligne « id var: Int = _ ».

Ce que le "__" signifie exactement dans ce code. Ce n'est pas lié à la méthode getter, je suppose que dans ce cas je suppose que le nom de la méthode getter sera id_.

Merci à l'avance ...

+1

valeur de type par défaut (généralement null) – cchantep

Répondre

3

« _ » signifie « valeur par défaut » valeur par défaut Maintenant pourrait être différente pour différents types de données. Par exemple

default is 0 for Int 
default is 0.0 for double 
default is null for reference types 

ainsi de suite

Dans votre cas, la valeur 0

+0

merci monsieur ... :-) – Biswajit

+0

une chose, si possible, Quelle est l'exigence de cette ligne "var firstName: String = first" et "var lastName: String = last"? Je pense qu'en dehors de l'hivernage de la méthode toString, nous n'en avons pas d'autre utilisation. En fait, dans le cas de toString, nous pouvons également utiliser "first" et "last", n'est-ce pas? Pas besoin de re initialiser à nouveau ... ai-je raison ou quoi que ce soit derrière cela car c'est une classe Entity en jeu/JPA ... – Biswajit

0

Here vous avez une excellente explication de ce que les moyens et certains underscore cas d'utilisation.

J'aime voir cela comme un joker pour certaines opérations.

Exemple du blog de lien:

expr match { 
    case List(1,_,_) => " a list with three element and the first element is 1" 
    case List(_*) => " a list with zero or more elements " 
    case Map[_,_] => " matches a map with any key type and any value type " 
    case _ => 
    } 

Un autre exemple:

val someList = Seq(1,2,3,4,5) 
//Prints every element of the list 
someList.foreach(println(_))