E004: 파라미터 목록이 없는 Case Class
E004: 파라미터 목록이 없는 Case Class (Case Class Missing Param List)
이 에러는 case class가 파라미터 목록 없이 정의될 때 발생해요. Scala 3에서 case class는 반드시 파라미터 목록을 하나 이상 가져야 해요.
본문
Empty는 파라미터 목록을 최소한 하나 가져야 해요. 만약 Empty를 싱글턴(singleton)으로 표현하고 싶다면 case object를 쓰면 돼요. 또는 Empty에 파라미터 목록으로 명시적인 ()를 추가해도 되고요.
Example
case class Empty
Error
-- [E004] Syntax Error: example.scala:1:11 -------------------------------------
1 |case class Empty
| ^^^^^
| A case class must have at least one parameter list
|-----------------------------------------------------------------------------
| Explanation (enabled by `-explain`)
|- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| Empty must have at least one parameter list, if you would rather
| have a singleton representation of Empty, use a "case object".
| Or, add an explicit () as a parameter list to Empty.
-----------------------------------------------------------------------------
Solution
// Use case object for singleton representation
case object Empty
// Add an explicit empty parameter list
case class Empty()
// Or define actual parameters
case class Empty(value: String)
더 알아보기
case class와case object의 차이는 Scala 3 Book의 "Case Classes" 섹션에서 다루고 있어요.