Having trouble escaping all the quotes in my function
(basic usage of it -> if i find a string do nothing, if its not a string add " in the begin and end)
code snippet :
def putTheDoubleQuotes(value: Any): Any = {
value match {
case s: String => s //do something ...
case _ => s"\"$value\"" //not working
}
}
only thing that worked was :
case _ => s"""\"$value\""""
is there a better syntax for this ?
it looks terrible and the IDE (IntelliJ) marks it in red (but lets you run it which really pisses me!!!!!)
This fixed the problem for me, I tested this out and this is what I used.
http://docs.scala-lang.org/overviews/core/string-interpolation.html#the-raw-interpolator
Simple way:-
Taking @Pascalius suggestion a few steps further. class StringImprovements extends and inherits AnyVal.
Scala only uses the StringImprovements class to create an intermediate object on which to call implicitly the two extension methods dqt & sqt. Nevertheless, we can eliminate the creation of this object and improve performance by making the class inherit from AnyVal. For Scala provides the value type specifically for such cases where the compiler will replace the object by just making the call to the method directly.
Here is a simple example using the above implicit class in an intermix where we use named variables (string & boolean) and a function in the interpolation string.
How about
s"This is ${"\"" + variable + "\""}" inserted in string with quotes
It's heavily used in my case, therefore I created this version:
Another solution (also mentioned in the Scala tracker) is to use
Still ugly, but sometimes perhaps may be preferred over triple quotes.
It seems an escape sequence
$"
was suggested as a part of SIP-24 for 2.12:This SIP was never accepted, as it contained other more controversial suggestions. Currently there is an effort to get escape sequence
$"
implemented in 2.13 as Pre SIP/mini SIP $” escapes in interpolations.