【发布时间】:2013-02-11 23:00:06
【问题描述】:
从 scala 2.10 开始,可以进行以下插值。
val name = "someName"
val interpolated = s"Hello world, my name is $name"
现在还可以定义自定义字符串插值,您可以在此处的“高级用法”部分的 scala 文档中看到 http://docs.scala-lang.org/overviews/core/string-interpolation.html#advanced_usage
那么,我的问题是……有没有办法在插值之前从定义字符串新插值的隐式类内部获取原始字符串,包括任何插值变量名称?
换句话说,我希望能够定义一个插值 x,这样当我调用时
x"My interpolated string has a $name"
我可以完全如上所示获得字符串,而无需替换插值内的 $name 部分。
编辑:快速说明,我想这样做的原因是因为我想获取原始字符串并将其替换为另一个字符串,即国际化字符串,然后替换变量值。这是我想获得原始字符串而不对其执行插值的主要原因。
提前致谢。
【问题讨论】:
-
您的用例是什么?可能有比使用字符串插值更好的解决方案,这是一个相当具体的结构。
标签: string scala scala-2.10 string-interpolation