je le code suivantListe Scala numéro d'impression - IntelliJ IDEA
object DispatchLibrary
{
private var nodes = Map.empty[java.util.UUID, List[BigInt]]
def addNode(uuid: java.util.UUID) = if(nodes contains uuid) nodes else (nodes += (uuid -> Nil))
def addValue(uuid: java.util.UUID, value: BigInt) = nodes + (uuid -> (value :: (nodes get uuid getOrElse Nil)))
//def getValue(uuid: java.util.UUID) : List[BigInt] = ???
//def getValues() : List[BigInt] = ???
def calculated(): Boolean = !nodes.exists(_._1 eq null)
def main(args: Array[String]) : Unit =
{
val uuid = java.util.UUID.randomUUID()
addNode(uuid)
addValue(uuid, BigInt(999))
addValue(uuid, BigInt(9999))
nodes foreach {case (key, value) => println (key + "->" + value)}
}
}
Exécution du code ci-dessus dans IntelliJ IDEA donne quelque chose de similaire à la sortie suivante
8b2b4a7b-3e65-4de0-9035-8ee1d2910983->List()
Je ne sais pas pourquoi la La liste n'est pas imprimée.
Exécution d'un code similaire de la REPL donne le résultat attendu
scala> var nodes = Map.empty[Int, List[BigInt]]
nodes: scala.collection.immutable.Map[Int,List[BigInt]] = Map()
scala> nodes += (1->Nil)
scala> nodes += (1 -> (BigInt(999) :: (nodes get 1 getOrElse Nil)))
scala> nodes += (1 -> (BigInt(9999) :: (nodes get 1 getOrElse Nil)))
scala> nodes foreach {case (key, value) => println (key + "-->" + value)}
1-->List(9999, 999)
Je vous serais reconnaissant aussi si vous pouviez me aider à écrire les méthodes commentaires.
Je ne peux pas croire ce que les petites erreurs peuvent faire. Merci :) – Nabegh
Qu'en est-il de la deuxième partie de la question. J'essaie d'écrire des méthodes 'getValues ()' qui devraient retourner une liste de toutes les valeurs – Nabegh
@Nabegh 'def getValue (uuid: java.util.UUID) = nœuds (uuid)' et 'def getValues = nodes.values. flatten' – elbowich