Clover2開発日誌

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

メソッドやlambdaのreturn文の省略

前から特に意図無く入っていた機能ですがメソッドやlambdaのreturn文は省略することができます。

 

class ClassA {

  def initialize() {}

  def get():int {

    123;

  }

}

 

a := new ClassA();

a.get() == 123

は真です。

 

lambdaも戻り値を指定した場合は最後に実行された値が戻り値になります。

 

a := lambda(): int { 123 }

a() == 123

 

ただしlambdaの場合は戻り値を省略した場合はreturn文が必要となります。(型推論で必要になるためです。)

 

a := lambda() { return 123 }

a() == 123

 

となります。