私はスカラを学ぼうとしていて、それまでは素晴らしかったです。 このエラーを修正する方法がわかりません。その中でforeachとreturn文について自分自身を教えようとしましたが、問題はまだ分かりません。foreachで値を返す方法
上記の方法はコンパイルされませんdef a: Int = {
for(i <- Array(1,2,3,4,5)){
if(i == 3)
return i
}
}
、私は次のエラーを取得する:
error: type mismatch;
found : Unit
required: Int
for(i <- Array(1,2,3,4,5)){
^
私はタイプが何であるかを理解し、私はこの問題を解決する方法を見つけ出すことはできません。どのように私はintに割り当てるでしょうか?期待される振る舞いは、このメソッドが3を返すことです。これが起こり、私のコードで何が間違っていますか?
通常、 'return'はScalaでは使用されず、' Array'のような可変データ構造は通常避けられます。あなたのメソッドの慣用句(drexinの答えからのデフォルトを含む)は 'def a = 1〜5 find(_ == 3)getOrElse 0'(あるいは' val a = 3' :)です) –