scalacamp meetup - coleções em scala
TRANSCRIPT
RESUMO
➤ Por que é importante conhecer melhor as coleções
➤ Como Scala trata as coleções
➤ Onde encontrar documentação
➤ A importância de coleções imutáveis
➤ Detalhando um pouco mais os tipos
➤ Operadores
➤ As operações map, flatMap e forEach
➤ Coleções, Options e nulos
SOBRE O SCALACAMP
ScalaCamp é um grupo de desenvolvedores interessados na linguagem Scala, que se
reúne em Curitiba - PR.
Contatos através [email protected]
http://www.meetup.com/pt-BR/Curitiba-ScalaCamp-Meetup/Visite http://scalacamp.com.br/
IMUTÁVEIS SÃO PREFERIDOS
➤ O objeto companheiro (singleton) de uma interface scala (trait)
➤ Ex.: scala.collection.Map( “chave" -> “valor" )
➤ O singleton Map produz um imutável
➤ Através do método apply
OPERAÇÕES
val coll1:Seq[Int] = Seq(1, 2)
val res1 = coll1 :+ 3
val res2 = 0 +: coll1
coll1: Seq[Int] = List(1, 2)
res1: Seq[Int] = List(1, 2, 3)
res2: Seq[Int] = List(0, 1, 2)
OPERAÇÕES
val coll2:Set[Int] = Set(1, 2)
val res3 = coll2 + 3
val res4 = coll2 + (3, 4, 5)
coll2: Set[Int] = Set(1, 2)
res3: scala.collection.immutable.Set[Int] = Set(1, 2, 3)
res4: scala.collection.immutable.Set[Int] = Set(5, 1, 2, 3, 4)
OPERAÇÕES
val res5 = res3 - 3
val res6 = res4 - (3, 4, 5)
val res7 = coll1 ++ coll2
val res8 = coll1 ++: coll2
val res9 = res8 -- coll2
COLEÇÕES E
NULOSI call it my billion-dollar mistake… At that time, I was designing the first comprehensive type
system for references in an object-oriented language. My goal was to ensure that all use of
references should be absolutely safe, with checking performed automatically by the
compiler. But I couldn’t resist the temptation to put in a null reference, simply because it was
so easy to implement. This has led to innumerable errors, vulnerabilities, and system
crashes, which have probably caused a billion dollars of pain and damage in the last forty
years.
– Tony Hoare, inventor of ALGOL W.
Eu chamo isto o meu erro de bilhões de dólares ... Naquela época, eu estava projetando o
primeiro tipo de sistema abrangente para referências em uma linguagem orientada a
objetos. Meu objetivo era assegurar que todo o uso de referências deve ser absolutamente
seguro, com a verificação realizada automaticamente pelo compilador. Mas eu não pude
resistir à tentação de colocar em uma referência ao null, simplesmente porque era fácil de
implementar. Isto levou a inúmeros erros, vulnerabilidades e falhas no sistema, o que
provavelmente causaram um bilhão de dólares de dor e danos nos últimos quarenta anos.