Categories
Scala

O método apply de Scala

Vimos, ao falarmos de objetos complementares, que uma das vantagens deles era o compartilhamento de dados e comportamentos com uma classe homônima. Uma das funcionalidades compartilhadas entre objetos complementares e sua respectiva classe é a possibilidade de construir estáticamente objetos do tipo dessa classe, bem como oferecer diversas assinaturas(tipo e quantidade de parâmetros) para esses […]

Categories
Programação Scala

Criando scripts em Scala

Em nossa Introdução a Scala falamos da escalabilidade da linguagem: é uma plataforma que permite criar desde scripts rápidos até grandes sistemas multitarefas e distribuídos. A meta dos criadores de Scala é tornar possível a construção de grandes sistemas usando apenas uma linguagem, ao invés da tradicional combinação de scripts Python ou Perl para tarefas […]

Categories
Programação Scala

Programação imperativa em Scala

Mencionamos anteriormente que Scala tem a meta de integrar grandes sistemas usando apenas uma linguagem: desde rápidos scripts de instalação e administração de tarefas simples, à lógica de negócios, passando por complexos serviços distribuídos. Em todos os nossos tutoriais até agora, os idiomas usados foram funcionais. Por exemplo, usamos o idioma fold no lugar de […]

Categories
Programação Scala

Tuplas e listas básicas em Scala

Em diversas circunstâncias, criar classes inteiras para acomodar dados simples pode tornar o código desnecessariamente complicado. Talvez seja preciso armazenar apenas a matrícula de alunos e sua menção no semestre em uma lista. Por exemplo, para criar uma lista de nomes e emails seria um exagero criar uma classe dedicada para armazenar os pares de […]

Categories
Programação Scala

Loops funcionais e foldLeft

No paradigma de programação funcional os tradicionais loops while e for não possuem aplicabilidade. O motivo disso é o fato destes loops não retornarem um valor usável, logo eles precisam alterar valores existentes e, obviamente, isso implica no uso de dados mutáveis. Qualquer função agregadora realizada através de um loop while implica na necessidade de […]