Ceci décrit assez bien le problème:
scala> var l2 = List(1,2,3)
l2: List[Int] = List(1, 2, 3)
scala> l2(2) = 55
<console>:10: error: value update is not a member of List[Int]
l2(2) = 55
^
5 Réponses :
Votre problème est que les listes de Scala sont immuables, vous devez plutôt utiliser une liste mutable. Importer Scala.Collection.Butable.Queue et utilisez cela à la place. La file d'attente est un mutableiniste, il devrait donc faire ce que vous voulez. P>
Non nécessaire d'utiliser une structure mutable, comme indiqué par Calum ci-dessus, la méthode mise à jour renvoie la copie d'une liste avec un élément donné remplacé
La liste que vous créée est immuable.
scala> val l = List(1,2,3) l: List[Int] = List(1, 2, 3) scala> l.getClass res3: java.lang.Class[_] = class scala.collection.immutable.$colon$colon
Merci aux deux mais qui n'irez pas que je travaille avec l'API existante qui a une liste immuable. Je suppose que je dois alors remplacer toute la liste de la reconstruire.
scala.list code> est immuable em>, ce qui signifie que vous ne pouvez pas le mettre à jour en place. Si vous souhaitez créer un copier em> de votre liste qui contient le mappage mis à jour, vous pouvez procéder comme suit: scala.collection.mutable.Buffer <=> java.util.List
Mais vous pouvez envelopper l'affectation dans une implicite si vous n'aimez pas mis à jour code>
Les listes sont immuables à Scala. Mais si vous souhaitez remplacer un élément dans une liste, vous pouvez utiliser une méthode "mise à jour" comme celle-ci puisque les listes sont immuables, cela crée une copie de la première liste appelée num (comme indiqué La nouvelle liste à 'NUM') en remplaçant le 0ème élément à 22.SO La méthode de mise à jour genaral est p>
Bien que nous vous remercions de votre réponse, il serait préférable de fournir une valeur supplémentaire sur les autres réponses. Dans ce cas, votre réponse ne fournit pas de valeur supplémentaire, car un autre utilisateur a déjà posté cette solution. Si une réponse précédente vous a été utile, vous devez le voter au lieu de répéter les mêmes informations.
Désolé, c'est ma première réponse à Stackoverflow.i a écrit ce que j'ai compris sur la méthode "mise à jour" et je pensais que ce sera utile aux autres plus, je n'avais aucune idée de répéter. Je n'ai plus désolé de répéter.