【问题标题】:What does Predef.locally do, and how is it different from Predef.identityPredef.locally 做了什么,它与 Predef.identity 有什么不同
【发布时间】:2011-03-15 08:13:36
【问题描述】:

翻阅Scala 2.8 Predef 类,我发现有一个“本地”方法。据我所知,它与 Predef.identity 相同,除了具有“@inline”注释。它有什么用,为什么它在 Predef 中足够重要(因此可以在 Scala 中的任何地方使用)?

【问题讨论】:

  • 哇,我实际上是该线程的一部分,并且完全忘记了它。如果您将此作为答案而不是评论,我会接受并关闭问题
  • 嗯。我仍然会对identitylocally 之间的区别感兴趣。

标签: scala


【解决方案1】:

这里讨论:http://www.scala-lang.org/node/3594

这个想法是为了避免程序员错误地将“悬空”本地块与对象/类/特征的模板混淆。

object test {
  object a
  {
    val x = 1
  }

  object b

  { // oops, extra newline disassociates this block with the object b
    val x = 1
  }
}
test.a.x
//test.b.x // doesn't compile

如果程序员真的希望该块独立,可以使用locally

object test {
  object a
  {
    val x = 1
  }

  object b

  locally {
    val x = 1
  }
}

该线程还建议第一个代码会产生弃用警告。尚未添加。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 2017-02-20
    • 2016-05-27
    • 1970-01-01
    • 2011-08-01
    相关资源
    最近更新 更多