Scala case类只是常规类, 默认情况下是不可变的, 可通过模式匹配将其分解。
它使用均等方法在结构上比较实例。它不使用new关键字实例化对象。
case类中列出的所有参数都是公共的, 默认情况下是不可变的。
句法
case class className(parameters)
Scala case类示例
case class CaseClass(a:Int, b:Int)object MainObject{
def main(args:Array[String]){
var c =CaseClass(10, 10)// Creating object of case class
println("a = "+c.a)// Accessing elements of case class
println("b = "+c.b)
}
}
输出
a = 10
b = 10
case类支持模式匹配。因此, 你可以在模式中使用它。以下是case类和模式的示例。
Scala case类和模式匹配示例没有参数的case类被声明为case对象, 而不是case类。 case对象默认情况下是可序列化的。
trait SuperTrait
case class CaseClass1(a:Int, b:Int) extends SuperTrait
case class CaseClass2(a:Int) extends SuperTrait// Case class
case object CaseObject extends SuperTrait// Case object
object MainObject{
def main(args:Array[String]){
callCase(CaseClass1(10, 10))
callCase(CaseClass2(10))
callCase(CaseObject)
}
def callCase(f:SuperTrait) = f match{
case CaseClass1(f, g)=>
println("a = "+f+" b ="+g)
case CaseClass2(f)=>
println("a = "+f)
case CaseObject=>
println("No Argument")
}
}
【Scala case类和case对象用法详细示例】输出
a = 10 b =10
a = 10
No Argument
推荐阅读
- Scala属性覆盖介绍和用法示例
- Android中使用XUI引入各种UI组件
- android stdio 安装后gradle 编译失败,设置代理不管用
- AndroidStudio中debug.keystore文件不存在解决办法
- 高通推出新的智能手表芯片,为安卓系统注入新的活力
- Jenkins+Gradle实现Android移动端自动打包+邮件发送通知
- java配合uniapp的微信支付商户转账等解决方案
- 内网下Android studio failed解决办法
- Android App 侧边栏菜单的简单实现