我刚开始使用Scala,希望更好地理解解决问题的功能方法.我有一对字符串,第一个字符串有参数的占位符,它的对有要替换的值.例如"从tab1中选择col1,其中id> $ 1,名称如$ 2""参数:$ 1 ='250',$ 2 ='some%'"
可能有多于2个参数.
我可以通过逐步执行并在每一行上使用regex.findAllIn(line)构建正确的字符串,然后通过迭代器来构造替换,但这似乎相当不优雅且程序驱动.
任何人都可以指出我的功能方法更整洁,更不容易出错吗?
我想询问Scala中是否存在任何类型的字符串插值.我已经对这个主题进行了搜索,但是到现在为止我发现没有字符串插值.是否有计划在下一版本中实施?
谢谢!
UPDATE
字符串插值将在scala 2.10中,您可以试用,因为scala 2.10.RC1已经用完(20/10/2012).您可以查看此scala 2.11的SIP,它指出模式匹配器中的插值字符串将是有效的语法.使用新的字符串插值,您可以执行以下操作:
val age = 28
val name = "Gerry"
s"My name is $name and I am $age years old"
res0: String = My name is Gerry and I am 28 years old
Run Code Online (Sandbox Code Playgroud)
Scala中的字符串插值有一个简短的语法吗?就像是:
"my name is %s" < "jhonny"
Run Code Online (Sandbox Code Playgroud)
代替
"my name is %s" format "jhonny"
Run Code Online (Sandbox Code Playgroud)