Um projeto completo para aprender os conceitos fundamentais e avançados da linguagem Scala.
Este projeto contém exemplos práticos e funcionais dos principais conceitos do Scala:
-
Fundamentos Básicos (
Hello.scala)- Sintaxe básica
- Val vs Var
- Funções
- Collections
-
Dependências e Bibliotecas (
ExemploComDependencias.scala)- JSON parsing com Circe
- HTTP requests com STTP
- Manipulação de dados
-
Pattern Matching (
PatternMatchingExemplo.scala)- Sealed traits e case classes
- Pattern matching avançado
- Guards e destructuring
-
Error Handling (
ErrorHandlingExemplo.scala)- Option, Some, None
- Either para tratamento de erros
- Try para exceções
- For-comprehensions
-
Implicits e Type Classes (
ImplicitsExemplo.scala)- Implicit conversions
- Type classes pattern
- Context bounds
- Implicit parameters
-
Testes (
HelloTest.scala,JsonTest.scala)- Testes unitários com ScalaTest
- TDD practices
- Java 8 ou superior
- SBT (incluído no projeto)
# Compilar o projeto
.\sbt\bin\sbt.bat compile
# Executar exemplos específicos
.\sbt\bin\sbt.bat "runMain Hello"
.\sbt\bin\sbt.bat "runMain PatternMatchingExemplo"
.\sbt\bin\sbt.bat "runMain ErrorHandlingExemplo"
.\sbt\bin\sbt.bat "runMain ImplicitsExemplo"
.\sbt\bin\sbt.bat "runMain ExemploComDependencias"
# Executar testes
.\sbt\bin\sbt.bat test- Circe: Para manipulação de JSON
- STTP: Para requisições HTTP
- ScalaTest: Para testes unitários
Este projeto segue uma progressão natural de aprendizado:
- Iniciante:
Hello.scala - Básico:
ExemploComDependencias.scala - Intermediário:
PatternMatchingExemplo.scala,ErrorHandlingExemplo.scala - Avançado:
ImplicitsExemplo.scala - Prática: Testes unitários
Consulte o arquivo GUIA_APRENDIZADO_SCALA.md para um roteiro completo de estudos.
scala_project/
├── src/
│ ├── main/scala/
│ │ ├── Hello.scala
│ │ ├── ExemploComDependencias.scala
│ │ ├── PatternMatchingExemplo.scala
│ │ ├── ErrorHandlingExemplo.scala
│ │ └── ImplicitsExemplo.scala
│ └── test/scala/
│ ├── HelloTest.scala
│ └── JsonTest.scala
├── build.sbt
├── GUIA_APRENDIZADO_SCALA.md
└── README.md
- Programação Funcional: Map, filter, reduce, for-comprehensions
- Sistema de Tipos: Type classes, implicits, generics
- Error Handling: Option, Either, Try
- Pattern Matching: Destructuring, guards, sealed traits
- Collections: List, Vector, Set, Map
- Testing: Unit tests, mocking, property-based testing
Projeto criado como material de estudo para aprender Scala de forma prática e incremental.
Data de Criação: 23 de julho de 2025
Versão do Scala: 2.13.8
Build Tool: SBT 1.9.7