Introduction to Scala Types, Part 2 (Variance)

In this free Scala training video I continue to provide an introduction to Scala types, this time primarily focusing on Variance when using generic types.

Like C# and Kotlin, Scala uses declaration-site variance, and in this video I describe variance as related to whether the type is used as a Producer, Consumer, or both. In C# and Kotlin, producer types are annotated with the out keyword, and consumer types are annotated with the in keyword, and I think that’s easier to understand, especially when you first start working with variance.

I also explain variance with how it’s used in the Scala collections classes, like List, ArrayBuffer, and other types.