在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Scala/ Scala Case類(lèi)和對(duì)象
Scala方法重載
Scala模式匹配
Scala throw關(guān)鍵字
Scala提取器
Scala概述
Scala throws關(guān)鍵字
Scala finally塊
Scala正則表達(dá)式
Scala循環(huán)語(yǔ)句
Scala多線程
Scala函數(shù)
Scala final關(guān)鍵字
Scala方法覆蓋
Scala字符串
Scala線程實(shí)現(xiàn)
Scala異常處理
Scala類(lèi)和對(duì)象
Scala數(shù)據(jù)類(lèi)型
Scala單例和伴生對(duì)象
Scala構(gòu)造函數(shù)
Scala教程
Scala Case類(lèi)和對(duì)象
Scala繼承
Scala開(kāi)發(fā)環(huán)境安裝配置
Scala運(yùn)算符
Scala文件I/O
Scala線程方法
Scala變量
Scala try-catch語(yǔ)句
Scala基礎(chǔ)語(yǔ)法
Scala集合
Scala數(shù)組
Scala閉包
Scala訪問(wèn)修辭符
Scala this關(guān)鍵字

Scala Case類(lèi)和對(duì)象

Scala Case類(lèi)只是常規(guī)類(lèi),默認(rèn)情況下是不可變的,可通過(guò)模式匹配可分解。

它使用相等(equal)方法在結(jié)構(gòu)上比較實(shí)例。它不使用new關(guān)鍵字實(shí)例化對(duì)象。

默認(rèn)情況下,case類(lèi)中列出的所有參數(shù)默認(rèn)使用publicimmutable修辭符。

語(yǔ)法

case class className(parameters)

Scala Case類(lèi)示例

case class CaseClass(a:Int, b:Int)  

object Demo{  
    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)  
    }  
}

將上面代碼保存到源文件:Demo.scala中,使用以下命令編譯并執(zhí)行代碼 -

D:\software\scala-2.12.3\bin>scalac Demo.scala
D:\software\scala-2.12.3\bin>scala Demo
a = 10
b = 10

Case類(lèi)支持模式匹配。 所以,可以在模式中使用它。以下是Case類(lèi)和模式的示例。

Scala Case類(lèi)和模式匹配示例

沒(méi)有參數(shù)的case類(lèi)將被聲明為case對(duì)象而不是case類(lèi)。 默認(rèn)情況下,case對(duì)象是可序列化的。

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 Demo{  
    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")  
    }  
}

將上面代碼保存到源文件:Demo.scala中,使用以下命令編譯并執(zhí)行代碼 -

D:\software\scala-2.12.3\bin>scalac Demo.scala
D:\software\scala-2.12.3\bin>scala Demo
a = 10 b =10
a = 10
No Argument