Scalaのエントリーノート - パターンマッチング

    {一致名
      ケース"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










  

おすすめ

転載: www.cnblogs.com/sunnystone85/p/11363659.html