Option is one of the type constructors that Scala provides. The question arises, what's a type constructor? The answer is simple; it lets you construct a type. We'll take two statements:
Option
is a type constructorOption[Int]
is a type
Let's discuss these in detail. When I say Foo
is a type constructor, it means that Foo
expects you to provide a particular type in the form of a parameter. It looks like Foo[T]
, where T
is an actual type. We call them type parameters and we'll talk about them in the following few sections.
In the second statement, we saw that we gave an Int
type to our Option
type constructor in brackets and it formed a type. If you try this in the Scala REPL, it'll tell you exactly the same thing we discussed:
scala> val a: Option = Some(1) <console>:11: error: class Option takes type parameters val a: Option = Some(1) scala> val a: Option[Int] = Some(1) a: Option[Int] = Some(1)
In simple words, the Option[T]
type represents an optional value...