2017-04-30 4 views
0

Ich muss eine Methode verwenden, die eine Hash-Map liest und einen Wert zurückgibt, der einem bestimmten Schlüssel zugeordnet ist. Diese Methode gibt Some zurück (Set [ActorRef]) und ich möchte ein Element (Actor) zu diesem Set (für diesen Schlüssel) hinzufügen.An einige anhängen (Set [ActorRef])

Ich experimentierte auf REPL mit einem Set [Int] wie folgt:

y2 = y.getOrElse("None") 

Diese mich bekommt:

y2: Any = Set(8) 

Allerdings habe ich nicht herausfinden kann, wie man diesen Satz anzufügen.

habe ich versucht, die folgenden aber nicht

y2 ++ 12 
<console>:11: error: value ++ is not a member of Any 

Vielen Dank im Voraus nicht funktioniert.

+0

Your're mit Fragen, weil getOrElse („None“) versucht, Typ String (die „None“ Sie bestanden in) mit Typ-Set zu lösen , was zu Typ Any führt. Sie können die Operationen "Festlegen" nicht auf "Beliebige" anwenden –

Antwort

0

Ich glaube, ich habe es:

var z = y.get 

scala> z += 12 

scala> z 
res3: scala.collection.immutable.Set[Int] = Set(8, 12) 
0

Wenn Sie sicher wissen, es ist Some, warum es eine Option statt nur Set[ActorRef] zurückkehrt? Wenn nicht, dann müssen Sie entscheiden, was im Fall von None zu tun ist. Z.B. wenn Sie ein Einzelelement Set in diesem Fall zurückzukehren,

val y: Option[Set[ActorRef]] = // some code 
y.getOrElse(Set.empty) + anActorRef