Parece uma pergunta estúpida, mas tudo que encontrei na internet foi lixo. Simplesmente não consigo adicionar um elemento do tipo T
em uma lista List[T]
. Eu tentei com, myList ::= myElement
mas parece que cria um objeto estranho e acessar amyList.last
sempre retorna o primeiro elemento que foi colocado dentro da lista.
223
List
é convertido em umListBuffer
, o elemento é anexado, eaListBuffer
volta convertido (muito bem comoString
eStringBuilder
em Java), mas isso é apenas um palpite.Isso porque você não deve fazer isso (pelo menos com uma lista imutável). Se você realmente precisa acrescentar um elemento ao final de uma estrutura de dados e essa estrutura de dados realmente precisa ser uma lista e essa lista realmente precisa ser imutável, faça o seguinte:
ou aquilo:
fonte
:+
, por mais ineficiente que seja, apenas a reconstrói uma vez.As listas no Scala não foram projetadas para serem modificadas. De fato, você não pode adicionar elementos a um Scala
List
; é uma estrutura de dados imutável , como uma Java String. O que você realmente faz quando "adiciona um elemento a uma lista" no Scala é criar uma nova lista a partir de uma lista existente . (Fonte)Em vez de usar listas para esses casos de uso, sugiro usar um
ArrayBuffer
ou aListBuffer
. Essas estruturas de dados são projetadas para adicionar novos elementos.Finalmente, depois que todas as suas operações estiverem concluídas, o buffer poderá ser convertido em uma lista. Veja o seguinte exemplo REPL:
fonte
Isso é semelhante a uma das respostas, mas de maneira diferente:
fonte
Podemos acrescentar ou acrescentar duas listas ou list & array
Anexar:
Anexar:
fonte