首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Scala中的字符串插值?

Scala中的字符串插值?
EN

Stack Overflow用户
提问于 2011-10-27 22:29:39
回答 5查看 5.7K关注 0票数 15

我想问一下Scala中是否有任何类型的字符串插值。我已经对这个主题进行了搜索,但‘到目前为止,我发现没有字符串插值。有计划在下一个版本中实现吗?

谢谢!

更新

字符串插值将出现在scala 2.10中,你可以尝试一下,因为scala 2.10.RC1已经发布了(2012年10月20日)。你可以查看scala 2.11的这个SIP,它声明模式匹配器中的插值字符串将是有效的语法。使用新的字符串插值,您可以执行以下操作:

代码语言:javascript
复制
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

但是在目前所有可用的插值器上尝试documentation。请注意,您可以定义自己的插值器!有关更多信息,请尝试this link

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-27 22:31:41

它还不在(发布的) scala库中。但是有一个SIP (Scala改进过程)用于添加此功能:

http://docs.scala-lang.org/sips/pending/string-interpolation.html

票数 22
EN

Stack Overflow用户

发布于 2011-10-27 22:49:17

你可以像C语言那样做:

代码语言:javascript
复制
"Interpolate my %s here" format List(1,2,3)

//String = Interpolate my List(1, 2, 3) here

代码语言:javascript
复制
List(1,2,3) formatted "Interpolate my %s here"

你可以在任何有toString的东西上使用它们(即任何东西)

代码语言:javascript
复制
case class Foo(n: Int)
Foo(42) formatted "Here is a %s !!!!"
//String = Here is a Foo(42) !!!!

尽管前者在单个字符串中启用多个插值方面更灵活(因为它可以接受多个参数)。

票数 14
EN

Stack Overflow用户

发布于 2012-11-18 20:36:15

我在Scala2.9上使用了xml hack

代码语言:javascript
复制
val age = 28
val name = "Gerry"

<a>My name is {name} and I am {age} years old</a>.text
res0: String = My name is Gerry and I am 28 years old
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7917462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档