Learning Scala Programming: Object-oriented programming meets functional reactive to create Scalable and Concurrent programs by Vikash Sharma
Author:Vikash Sharma [Sharma, Vikash]
Language: eng
Format: epub
Tags: COM051440 - COMPUTERS / Software Development and Engineering / Tools, COM051280 - COMPUTERS / Programming Languages / Java, COM051010 - COMPUTERS / Programming Languages / General
Publisher: Packt Publishing
Published: 2018-01-30T00:00:00+00:00
It's really important to control the access level. With it we can have fine-grain scope for every construct. This keeps the client away from unnecessary details that you might not want them to access. This is all about limiting the scope for members. There are a few more construct such as sealedtraits, that help us structure the code in a good way, but that's just one thing about them. There's much more to know about.
Sealed traits
One good thing about sealed traits is that standard Scala library uses these constructs a lot, and you've also seen them many times so far. It's time to learn about them. We'll start with an example:
sealed trait Season case object Autumn extends Season case object Winter extends Season case object Spring extends Season case object Summer extends Season case object Monsoon extends Season object SealedApp extends App { def season(season: Season) = season match { case Autumn => println(s"It's Autumn :)") case Winter => println(s"It's Winter, Xmas time!") case Spring => println(s"It's Spring!!") case Summer => println(s"It's summer, who likes summer anyway!") case Monsoon => println(s"It's Monsoon!!") } season(Spring) }
The result is as follows:
It's Spring!!"
Here, we defined a sealed trait named Season. Then there're a few child season case objects extending from the sealed trait Season. By the way, case objects are like case classes with the difference being that these are only instances with already available names, unlike the case classes. There're a few points to note about the preceding implementation of the sealed trait named Season.
All children extending the Season trait should be defined in the same file.
Constructs such as sealed traits come with a license to perform pattern matching. This is good for design constructs.
Also, when we perform pattern matching on sealed traits, we need to take care of all the possibilities. Otherwise, as we know, the Scala compiler is intelligent enough to come up with a warning about the remaining scenarios whenever it sees that the pattern match is on a sealed trait.
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Deep Learning with Python by François Chollet(12568)
Hello! Python by Anthony Briggs(9912)
OCA Java SE 8 Programmer I Certification Guide by Mala Gupta(9795)
The Mikado Method by Ola Ellnestam Daniel Brolund(9777)
Dependency Injection in .NET by Mark Seemann(9336)
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8293)
Test-Driven iOS Development with Swift 4 by Dominik Hauser(7760)
Grails in Action by Glen Smith Peter Ledbrook(7693)
The Well-Grounded Java Developer by Benjamin J. Evans Martijn Verburg(7557)
Becoming a Dynamics 365 Finance and Supply Chain Solution Architect by Brent Dawson(7040)
Microservices with Go by Alexander Shuiskov(6805)
Practical Design Patterns for Java Developers by Miroslav Wengner(6717)
Test Automation Engineering Handbook by Manikandan Sambamurthy(6656)
Secrets of the JavaScript Ninja by John Resig Bear Bibeault(6409)
Angular Projects - Third Edition by Aristeidis Bampakos(6065)
The Art of Crafting User Stories by The Art of Crafting User Stories(5596)
NetSuite for Consultants - Second Edition by Peter Ries(5531)
Demystifying Cryptography with OpenSSL 3.0 by Alexei Khlebnikov(5335)
Kotlin in Action by Dmitry Jemerov(5062)
