E016: 보간 문자열 오류

E016: 보간 문자열 오류 (Interpolated String Error)

이 에러는 보간 문자열(interpolated string)에서 $ 기호 뒤에 잘못된 문법이 올 때 발생해요. 식별자나 블록 표현식 ${...}가 기대돼요.

출처: Scala 3 Reference

본문

문자열 보간에서 $ 문자는 문자열 안에 표현식을 임베드하는 데 사용돼요. $ 뒤에는 다음 중 하나를 사용할 수 있어요:

복잡한 표현식(예: new Object())을 넣어야 한다면 반드시 중괄호로 감싸야 해요.

Example

val x = s"$new Object()"

Error

-- [E016] Syntax Error: example.scala:1:11 -------------------------------------
1 |val x = s"$new Object()"
  |           ^
  |           Error in interpolated string: identifier or block expected
  |-----------------------------------------------------------------------------
  | Explanation (enabled by `-explain`)
  |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  | This usually happens when you forget to place your expressions inside curly braces.
  |
  | s"$new Point(0, 0)"
  |
  | should be written as
  |
  | s"${new Point(0, 0)}"
   -----------------------------------------------------------------------------

Solution

// Wrap complex expressions in braces
val x = s"${new Object()}"
// Simple identifiers don't need braces
val name = "World"
val greeting = s"Hello, $name!"
// Use braces for member access
case class Person(name: String)
val person = Person("Alice")
val greeting = s"Hello, ${person.name}!"

더 알아보기

  • 문자열 보간의 자세한 규칙은 "String Interpolation" 관련 문서를 참고하세요.