Friday, 11 January 2019

Case Class Examples in Scala

//case class example
//case class can be used for pattern matching
//'new' is not needed while creating instance of case class

scala> case class B(id:Int, name:String)
defined class B

scala> val myList = List(B(2,"Sankar"),B(3,"Hari"),4)
myList: List[Any] = List(B(2,Sankar), B(3,Hari), 4)

scala> for (i <- myList){
     | i match {
     | case B(id,name) => println(s"The data is $id and $name")
     | case x:Int => println(s"The data is $x")
     | }
     | }
The data is 2 and Sankar
The data is 3 and Hari
The data is 4


scala> case class C(id:Int, name:String, age:Int)
defined class C

scala> case class B(id:Int, name:String)
defined class B

scala> val l = List(B(1,"Sankar"),C(2,"Hari",23),B(3,"Priya"),C(5,"Akash",33),58)
l: List[Any] = List(B(1,Sankar), C(2,Hari,23), B(3,Priya), C(5,Akash,33), 58)

scala> for (i <- l) {
     | i match {
     | case B(id,name) => println(s"The B class data is $id : $name")
     | case C(id,name,age) => println("The C class data is $id : $name : $age")
     | case x:Int => println(s"The inter is $x")
     | }
     | }
The B class data is 1 : Sankar
The C class data is $id : $name : $age
The B class data is 3 : Priya
The C class data is $id : $name : $age
The inter is 58


scala> case class Person(var id:Int, var name:String)
defined class Person



scala> val p = Person(10,"Sara")
p: Person = Person(10,Sara)

scala> p.name = "Lara"
p.name: String = Lara

scala> p.id = 100
p.id: Int = 100

scala> p
res6: Person = Person(100,Lara)



scala> case class Student(val id:Int, val name:String)
defined class Student

scala> val s = Student(10,"Kalai")
s: Student = Student(10,Kalai)

scala> s.name = "Silai"
<console>:12: error: reassignment to val
       s.name = "Silai"
              ^

No comments:

Post a Comment

Flume - Simple Demo

// create a folder in hdfs : $ hdfs dfs -mkdir /user/flumeExa // Create a shell script which generates : Hadoop in real world <n>...