{一致名 ケース"AAA" =>のprintln( "これはAAA IS") ケース"BBB" =>のprintln( "これはBBB IS") ケース_ =>のprintln( "ララ") } //マッチ型 ケースSTR:文字列=> ... ケースINT:INT => ... ケースmatchType:MatchType => // ...マッチングカスタムタイプ //カスタム・タイプ・ クラスMatchType { }
//マッチングアレイタプル、セット
ヴァルARR =配列(1、2、3、6)
ARR一致{
ケースアレイ(3、A、B、C)=>のprintln(S "の場合:$、$ bのは、$ C")
ケースアレイ(_、 X、Y、Z)=>のprintln(S "の場合:$ X、$ yを、$のZ")
場合_ =>のprintln( "NOが一致")
}
ヴァルTUP =( "A"、1、4)
TUPマッチ{
場合( "C"、B、4)=>のprintln(S "の場合:$ B")
の場合( "A"、X、Y)=>のprintln (S "の場合:$ xには、$ Y")
場合_ =>のprintln( "NOマッチ")
}
リストのList1 =ヴァル(0 ,. 1,2 ,. 3)
のList1一致{
//無記号空のリストであり、::操作右から左へ(0 ::無記号リストを生成する(0))
ケース::無記号0 =>のprintln ( "ケース1:0")
ケース2 A :: B :: C :: :: ::無記号D =>のprintln(S "ケース2:$ A、$ B、$ C、$ D")
ケース:: 0 =>のprintln(S "ケース3:$ A")
ケースリスト(0、A、B、C)=>のprintln(S "事例4:$ A、$ B、$ C")
ケース_ =>のprintln( "笑" )
}
//サンプルの一致カテゴリ
CaseClassDemo {オブジェクト
DEFメイン(:配列[文字列]引数):単位= {
ヴァルARR =配列(CheckTimeOutTask、SubmitTask( "1000"、 "タスク-0001")、ハートビート(3000))
ARR(にRandom.nextInt(ARR。長さ))マッチ{
場合CheckTimeOutTask =>のprintln( "CheckTimeOutTime")
場合SubmitTask(ポート名)=>のprintln( "SubmitTask")
場合ハートビート(時間)=>のprintln( "HeartBeet")
}
}
}
ケースクラスハートビート(時間:長い)
場合クラスSubmitTask(ID:文字列、タスク名:String)を
ケース・オブジェクトCheckTimeOutTask