加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala未绑定的占位符参数

发布时间:2020-12-16 18:40:51 所属栏目:安全 来源:网络整理
导读:我使用以下代码来满足我的需求: (1 to 5)..map(i = s"x${i}") // Produces List("x1","x2","x3","x4","x5") 但我想使用占位符.根据the string interpolator documentation: (1 to 5).map(s"x${_}") 应该扩展到: (1 to 5).map(StringContext
我使用以下代码来满足我的需求:

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

但我想使用占位符.根据the string interpolator documentation:

(1 to 5).map(s"x${_}")

应该扩展到:

(1 to 5).map(StringContext("\x","").s(_))

但后者工作,而不是前者,它会抛出错误:_上的未绑定占位符参数.为什么?

解决方法

我相信语法:

(1 to 5).map(s"x${_}")

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

(1 to 5).map(i => s"x${i}")

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读