ScalaのString Interpolation内でダブルコーテーションを使おうとしたらハマった件についてのメモ
ScalaのString Interpolationってとても便利なんだけど、内部でダブルコーテーションを使おうと思ったら(エスケープしようと思ったら)ハマったのでメモ。
これは『「s""」の内部でバックスラッシュに於けるエスケープが効いてないよう!うへえ!』みたいな感じのScalaのバグってことでいいのだろうか?
↓
[SI-6476] \" escape does not work with string interpolation - Scala
Scala version
$ scala -version Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL
やりたかったこと
こんな感じのことを期待してたんだけど
scala> println(s"\"hoge\"") "hoge"
実際はこんな風にエラー
scala> println(s"\"hoge\"") <console>:1: error: ')' expected but string literal found. println(s"\"hoge\"") ^
""" を使えばとりあえずはOKっぽい。
scala> println(s"""\"hoge\"""") \"hoge\" scala> println(s""""hoge"""") "hoge" scala> val name:String = "omiend" name: String = omiend scala> println(s""""${name}"""") "omiend"