我无法在Scala中找到这一行:s" label($ name)"

时间:2015-10-02 18:28:04

标签: scala

我已经在其他答案中找到了这个,但似乎符号$绊倒搜索引擎,并且很难找到"那是什么{{ 1}}做"。我尝试将s放在引号中,但我想我做错了。

无论如何,我在一个类中有这个方法:

$

这里有很多混乱。

引号前的class Label(val name: String) { override def toString = s"Label($name)" } 是什么?根据我的理解,类s在其构造中接收到一个字符串,因此我甚至不确定为什么需要Label方法。

很明显,toString是保存收到$name标签的名称变量,但为什么是String?我怀疑它与变量是一个字段有什么关系?本地与全球?但是在Google上寻找这个让我无处可去。有人可以破译这种方法吗?

1 个答案:

答案 0 :(得分:5)

这称为字符串插值。

s告诉Scala替换字符串中遇到的任何变量。

http://docs.scala-lang.org/overviews/core/string-interpolation.html

在帮助您搜索方面,我知道找出搜索这类内容的最佳方法可能很烦人。在这种情况下,如果你搜索" scala的字符串函数" Google的前两个结果为您提供了所需的答案。