Skip to Content
Programming Scala, 3rd Edition
book

Programming Scala, 3rd Edition

by Dean Wampler
May 2021
Intermediate to advanced
553 pages
13h 45m
English
O'Reilly Media, Inc.
Content preview from Programming Scala, 3rd Edition

Chapter 13. The Scala Type Hierarchy

We’ve already seen many of the types available in Scala’s library. Now, we’ll fill in the details about the hierarchy of types. Chapter 14 will discuss the collections. Figure 13-1 shows the large-scale structure of the hierarchy for Scala types.

ps3e 1301
Figure 13-1. Scala’s type hierarchy

At the root of the type hierarchy is Any. It has no supertypes and four subtypes:

  • Matchable, the supertype of all types that support pattern matching, which we discussed in “Safer Pattern Matching with Matchable”. Matchable is also a supertype of AnyVal and AnyRef.

  • AnyVal, the supertype of value types and value classes.

  • AnyRef, the supertype of all reference types.

  • Universal traits, which we discussed in “Value Classes”.

AnyVal has nine concrete subtypes, called the value types. They don’t require heap allocation of instances. Seven of them are numeric value types: Byte, Char, Short, Int, Long, Float, and Double. The remaining two are nonnumeric: Unit and Boolean.

Value classes also extend AnyVal (see “Value Classes”).

In contrast, all the other types are reference types, because instances of them are allocated in the heap and managed by reference. They are subtypes of AnyRef.

Because AnyVal and AnyRef subtype Matchable, all their subtypes can be used in pattern matching. The only types for which values can’t be used in pattern matching are Any, method ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Programming Scala, 2nd Edition

Programming Scala, 2nd Edition

Dean Wampler, Alex Payne
Functional Programming in Scala, Second Edition

Functional Programming in Scala, Second Edition

Runar Bjarnason, Michael Pilquist, Paul Chiusano

Publisher Resources

ISBN: 9781492077886Errata Page