메서드 정의 밖에서 return을 썼어요

메서드 정의 밖에서 return을 썼어요 (E091: Return Outside Method Definition)

return 문을 메서드 정의 밖에서 쓰면 이 에러가 나요. return 키워드는 메서드 정의 안에서만 쓸 수 있어요. 생성자, 익명 함수, 최상위에서는 쓸 수 없어요.

출처: Scala 3 Reference

본문

return 문을 메서드 정의 밖에서 사용하면 이 에러가 발생해요.

return 키워드는 메서드 정의 안에서만 사용할 수 있어요. 생성자, 익명 함수, 최상위에서는 쓸 수 없죠.

예시 (Example)

val x = return 42

최상위에서 return을 쓰려고 했네요.

에러 (Error)

-- [E091] Syntax Error: example.scala:1:8 --------------------------------------
1 |val x = return 42
  |        ^^^^^^^^^
  |        return outside method definition
  |-----------------------------------------------------------------------------
  | Explanation (enabled by `-explain`)
  |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  | You used return in the top-level definitions in package <empty>.
  | return is a keyword and may only be used within method declarations.
   -----------------------------------------------------------------------------

해결 방법 (Solution)

값이 필요하다면 그냥 값을 직접 사용해요.

// Simply use the value directly
val x = 42

return이 필요한 경우엔 메서드 안에서만 쓰도록 해요.

// Use return only inside methods
def getValue: Int = return 42  // but even here, avoid return
def getBetterValue: Int = 42   // preferred style