Scala未绑定的占位符参数

Mik*_*yer 5 scala string-interpolation scala-2.10

我使用以下代码来满足我的需求:

 (1 to 5)..map(i => s"\\x${i}")  // Produces List("\\x1", "\\x2", "\\x3", "\\x4", "\\x5")
Run Code Online (Sandbox Code Playgroud)

但我想使用占位符.根据字符串插补器文档:

(1 to 5).map(s"\\x${_}")
Run Code Online (Sandbox Code Playgroud)

应该扩展到:

(1 to 5).map(StringContext("\\\\x","").s(_))
Run Code Online (Sandbox Code Playgroud)

但后者的作品,而不是前者,这将引发error: unbound placeholder parameter_.为什么?

cmb*_*ter 10

我相信语法:

(1 to 5).map(s"\\x${_}")
Run Code Online (Sandbox Code Playgroud)

编译器认为_属于s函数,在这种情况下它不起作用.您可以通过执行以下操作轻松解决此问题:

(1 to 5).map(i => s"\\x${i}")
Run Code Online (Sandbox Code Playgroud)

您可能希望查看此链接,以进一步明确与匿名函数相关的占位符规则.

编辑:根据这篇文章,占位符语法用于工作,所以这可能是一个回归错误或一个从未意图以这种方式工作的功能:https://groups.google.com/forum/#!msg/scala -internals/G_54LGj0zpg/REZfyXZ6-RWJ