Clover2開発日誌

Clover2というJavaのように静的な型を持つRubyのようなコンパイラ+仮想マシンの開発日誌です。LLVMでJITもします。https://github.com/ab25cqにて開発しています。

when式を入れました。

version 3.2.3 リリース 2017/12/4

when式が入りました。

a := 123;
when(a) {
   1 {
       println("1");
   }
   2,3 {
       println("2,3");
   }
   123 {
       prinntln("123");
   }
   else {
       println("else");
   }
}

a := "ABC";
when(a) {
   "ABC" {
       println("ABC");
   }
   "DEF","GHI" {
       println("DEF or GHI");
   }
   else {
       println("else");
   }
}

ユーザークラスの場合IEqualableインターフェースが実装されている必要があります。equalsによって値を比較しているためです。