E016: 보간 문자열 오류
E016: 보간 문자열 오류 (Interpolated String Error)
이 에러는 보간 문자열(interpolated string)에서 $ 기호 뒤에 잘못된 문법이 올 때 발생해요. 식별자나 블록 표현식 ${...}가 기대돼요.
본문
문자열 보간에서 $ 문자는 문자열 안에 표현식을 임베드하는 데 사용돼요. $ 뒤에는 다음 중 하나를 사용할 수 있어요:
복잡한 표현식(예: 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" 관련 문서를 참고하세요.