Scalaの関数定義で=を書かないと・・・

def foo(arg: String) {
....
retval
}

なんてコードを書いていた。でも、なぜかfooを呼び出している所にretvalが返されない。以下のようにreturn文を書いても現象は変わらず。

 return retval

そこで、以下のように型を指定しようとすると

def foo(arg: String): String {
....
retval
}

以下のようなエラーが出る。

only classes can have declared but undefined members

ここでようやく気づいた。= が抜けてる…正しくは以下の通り。

def foo(arg: String): String = {
....
retval
}

分かりにくいよなぁ。最初の間違ったコードでreturn文を書いても何も文句を言われないので、間違いに気づくのに時間がかかった。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です