Skip to content

Commit 32a5a8c

Browse files
committed
Option in scala
1 parent e944d5c commit 32a5a8c

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

4.Classes/Options.scala

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
class Employee(val firstName:String, val midName:Option[String], val lastName:String){
2+
def this(firstName:String, midName:String, lastName:String) =
3+
this(firstName, Some(midName), lastName)
4+
5+
def this(firstName:String, lastName:String) =
6+
this(firstName, None, lastName)
7+
8+
def this() =
9+
this("Unknown", "Unknown")
10+
}
11+
12+
object Options extends App
13+
{
14+
val midName = Some("Shahaji")
15+
val midName2:Option[String] = midName
16+
val midName3:Some[String] = midName
17+
18+
val noMidName = None
19+
val noMidName2:Option[String] = noMidName
20+
val noMidName3:Option[Nothing] = noMidName
21+
val noMidName4:None.type = noMidName
22+
23+
val shivaji = new Employee("Shivaji", midName, "Bhosale")
24+
val charlie = new Employee("Charlie", "Chaplin")
25+
val stranger = new Employee()
26+
27+
println(midName.getOrElse("No Middle Name"))
28+
println(noMidName.getOrElse("No Middle Name"))
29+
println("Shivaji Middle Name:" + shivaji.midName.getOrElse("No Middle Name"))
30+
println("Charlie Middle Name:" + charlie.midName.getOrElse("No Middle Name"))
31+
println("Stranger Middle Name:" + stranger.midName.getOrElse("No Middle Name"))
32+
33+
def getMiddleName(x:Option[String]):String =
34+
{
35+
x match
36+
{
37+
case Some(name) => name
38+
case None => "No Middle Name"
39+
}
40+
}
41+
42+
println("Shivaji Middle Name using function:" +getMiddleName(shivaji.midName))
43+
println("Shivaji Middle Name using function:" +getMiddleName(charlie.midName))
44+
println("Shivaji Middle Name using function:" +(stranger.midName))
45+
}
46+
47+
/**
48+
Sample Output
49+
50+
> scalac Options.scala
51+
52+
> scala Options
53+
Shahaji
54+
No Middle Name
55+
Shivaji Middle Name:Shahaji
56+
Charlie Middle Name:No Middle Name
57+
Stranger Middle Name:No Middle Name
58+
Shivaji Middle Name using function:Shahaji
59+
Shivaji Middle Name using function:No Middle Name
60+
Shivaji Middle Name using function:None
61+
62+
**/

0 commit comments

Comments
 (0)