Useful Links
Computer Science
Programming
By Language
Scala Programming
1. Introduction to Scala
2. Scala Language Fundamentals
3. Object-Oriented Programming in Scala
4. Functional Programming in Scala
5. The Scala Collections Library
6. Advanced Language Features
7. Concurrency and Parallelism
8. Tooling and Ecosystem
9. Advanced Topics
10. Practical Applications
11. Best Practices and Idioms
Advanced Language Features
Pattern Matching
Matching on Values
Matching on Types
Guards in case Clauses
Matching on Case Classes
Matching on Collections
List
Vector
Array
Variable Binding in Patterns
Wildcard Patterns
The sealed Keyword for Exhaustive Matching
Pattern Matching in Variable Assignments
Pattern Matching Best Practices
Extractors and unapply Methods
Understanding unapply
Creating Custom Extractors
Boolean Extractors
Product Extractors
unapplySeq for Variable-Length Matches
Error Handling
try-catch-finally Blocks
Syntax and Usage
Catching Multiple Exceptions
Exception Hierarchy
Functional Error Handling
Option
Some
None
Common Operations on Option
Option vs null
Try
Success
Failure
Transforming and Recovering from Try
Either
Left
Right
Using Either for Error Handling
Biased Operations
Implicits
Implicit Parameters
Defining and Using Implicit Parameters
Implicit Parameter Resolution
Implicit Conversions
Defining Implicit Conversion Methods
Use Cases and Pitfalls
Implicit Conversion Rules
Implicit Classes
Extension Methods
Syntax and Usage
Value Classes
Context Bounds
Syntax and Usage
Type Class Pattern
Best Practices and Limitations
Implicit Resolution Rules
Debugging Implicit Issues
Type System in Depth
Generics
Defining Generic Classes and Methods
Type Parameters
Generic Constraints
Variance Annotations
Covariance
Contravariance
Invariance
Use Cases for Variance
Variance and Function Types
Type Bounds
Upper Bounds
Lower Bounds
Bounded Generics in Practice
Type Aliases
Defining and Using Type Aliases
Abstract Type Members
Self-Type Annotations
Syntax and Use Cases
Dependency Injection with Self-Types
Existential Types
Structural Types
Path-Dependent Types
Previous
5. The Scala Collections Library
Go to top
Next
7. Concurrency and Parallelism