scala基础5⃣️样例类


// 样例类里定义field,并由Scala在编译时自动提供getter和setter方法,但是样例类里没有method
// 样例类的属性默认为val(可以设为var】)
// 样例类自带伴生对象,并且有apply()方法,该方法用来生成样例类对象

def main(args:Array[String]): Unit ={
    class Person
    case class Teacher(var name: String, subject: String) extends Person  //不建议使用var
    case class Student(name: String, classroom: String) extends Person

    val p:Person=Teacher("Ta","Math")
    //val p:Person=Student("Sa","Classroom1")

    p match {
      case Teacher(name, subject) => println("Teacher:" + name + ", " + subject)
      case Student(name, classroom) => println("Student:" + name + ", " + classroom)
      case _ => println("Illegal access, please go out of the school!")
    }
}

----Option类型----------------------------

// Option是Scala中的一种特殊类型,Option有两种值:一种是Some,表示有值;一种是None,表示没有值
//Option通常会用于模式匹配中,判断某个变量是有值,还是没有值,比null更好用(null可以继续使用)
//Some和None是Option的样例类(查看源码)

val grades = Map("Leo" -> "A", "Jack" -> "B", "Jen" -> "C")

val grade = grades.get("Leo1")
grade match {
  case Some(grade) => println("your grade is " + grade)
  case None => println("Sorry, your grade information is not in the system")
}

-----------

val map = Map("a" -> "100")
println(map("a"))
println(map.get("a"))  //返回值为some(100)
println(map.get("a").get)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值