Scala: Beyond the Basics
Pattern matching, extractors, and implicits
No matter how much Scala you already know, there’s always more that you can make it do. Join Scala expert Daniel Hinojosa for a hands-on, in-depth exploration aimed at users who want to take their Scala skills up a level. Through a mix of lectures, Q&A sessions, realistic code examples, and hands-on exercises, you’ll learn the intricate art of pattern matching, discover how to create your own extractors, and develop a deeper understanding of Scala implicits, implicit classes, and type classes. By the time you're through, you'll be able to write more powerful Scala code that’s concise, readable, and highly maintainable.
This class is a great follow-up if you’ve taken Daniel’s Learn the basics of Scala in 3 hours and Setting up Scala projects courses or if you already understand concepts such as manipulating variables, classes, and functions.
What you'll learn-and how you can apply it
By the end of this live, hands-on, online course, you’ll understand:
- The basics of pattern matching in Scala
- How to create your own extractor for pattern matching
- How to work with and implement implicits and typeclasses
And you’ll be able to:
- Write more powerful Scala code
- Write Scala code that’s concise, readable, and highly maintainable
- Advise your teammates on powerful Scala advanced features and crucial best practices
This training course is for you because...
- You're an intermediate Scala developer looking for a deeper knowledge in pattern matching, implicits, and type classes.
- You're interested in the Scala language and want to learn some of its more advanced features.
- You currently develop in another functional language and want to learn how Scala handles pattern matching and retrofitting premade classes so you can add some implementations of your own.
- Intermediate object-oriented and functional programming knowledge
- Basic Scala programming knowledge (equivalent to an introductory Scala course, such as O’Reilly’s Beginning Scala Programming)
Materials or downloads needed in advance:
- A machine with the latest JDK 8, JDK 9, or JDK 10, Scala, the latest IntelliJ or Eclipse with the Scala and Scala-IDE plug-ins, and sbt installed and set up
- Learn the basics of Scala in 3 hours (live online training course with Daniel Hinojosa)
- Setting up Scala projects (live online training course with Daniel Hinojosa)
- Beginning Scala Programming (video)
- Scala core programming: Sealed traits, collections, and functions (live online training course with Daniel Hinojosa)
- Scala core programming: Methods, classes, and traits (live online training course with Daniel Hinojosa)
About your instructor
Daniel Hinojosa is a programmer, consultant, instructor, speaker, and recent author. With over 20 years of experience, he does work for private, educational, and government institutions. He is also currently a speaker on the No Fluff Just Stuff tour. Daniel loves JVM languages like Java, Groovy, and Scala, but he also dabbles with non-JVM languages like Haskell, Ruby, Python, LISP, C, and C++.
He is an avid Pomodoro Technique Practitioner and makes every attempt to learn a new programming language every year. Daniel is the author of Testing in Scala and the video Beginning Scala Programming for O’Reilly. For downtime, he enjoys reading, swimming, Legos, football, and barbecuing.
The timeframes are only estimates and may vary according to how the class is progressing
Day One: Pattern Matching
Introduction (60 minutes)
- Refresher on Scala and Setup
- Refresher on Objects and Companion Objects
Basics of Pattern Matching (60 minutes)
- Basics Pattern Matching of Values and Defaults
- Using Pattern Matching in Methods
- Pattern Matching Lists – Pattern Matching Lists and as a whole
- Pattern Matching Tuples
- Pattern Matching Options
- Pattern Matching Regular Expressions
- Handling Variable Shadowing
- Using Method Variables as Stable Variables
- Pattern Matching Case Classes
- Other Advanced Rules and Miscellanea
Creating your own Pattern Match (60 minutes)
- Creating your own extractors
- Creating your own extractors as a companion object
- Creating list extractors
- Revisiting Tuples, Options, etc.
Day Two: Implicits and Typeclasses
Introduction (60 minutes)
- Introduction to Implicits
- Implicit Parameters
- Implicit Objects
Wrappers, Converters, and Implicitly (60 minutes)
- Implicit Wrappers
- Implicit Classes
- Implicit Converters
- Locating Implicits
– Import Strategies
– Companion Objects
– Package Implicits
- Understanding Predef Implicits
TypeTags and Typeclasses (60 minutes)
- View Bounds
- Context Bounds
- Type Tags