Scala Options Explained
I code reviewed the Option collection in Scala.
Let’s create a new Option that contains a String.
var indeed: String = "Indeed"
var optionIndeed = Option(indeed)
Options have two subtypes “Some” and “None”. The factory creates ‘Some(x)’ if the argument is not null, and ‘None’ if it is null.
def apply[A](x: A): Option[A] = if (x == null) None else Some(x)
To get the value simply call:
"Empty" is the default value.
There are few ways to safely extract the value from an Option
The ‘getOrElse(Default)’ method goes into the Scala class hierarchy (Figure 2) to find the common ancestor for the value of the Option and the Default.
Option[Int] and Default=String.
getOrElse(Default) will return Scala.Any
A = Int
B = Scala.Any
final def getOrElse[B >: A](default: => B): B =
if (isEmpty) default else this.get
The “>:” is called the “Lower Bound Operator” it restricts type B to those that are equal to or extended by the type A. In our case “default” is transformed to scala.Any because it is extended by Int.
The anonymous function, “=>”, which separates the function’s argument list from its body takes in nothing and returns type “B”.
The complete code:
I am in the process of learning Scala from Scratch for a project at Expedia. We are using the Actor pattern to efficiently shop multiple hotel inventory services.
To get started with the Actor Pattern read these articles in order. Ignore everything else on the internet. There was so many abstract articles without code about The Reactive Manifesto.
"Talk is cheap. Show me the code."
- Linus Torvalds
The hardware we rely on is changing rapidly as ever-faster chips are replaced by ever-increasing numbers of cores. As a…www.javaworld.com
In the first half of his introduction to actor concurrency, Alex Miller discussed the limitations of shared-state…www.javaworld.com