Scala:将下划线预先添加到函数名称

时间:2017-04-24 21:02:18

标签: scala

我遇到过一个例子,我们有一个带有参数的函数,并且还定义了一些内部函数。然后我们根据这个参数的值执行其中一个函数。所有内部函数都在名称前加上下划线。 这种“下划线风格”有一些语义上的意义吗?

def outsideFunction(param: SomeType) {
  _inner1() = { ...}
  _inner2() = {....}

  param match {
   case result: Int => _inner1()
   case result: String => _inner2()
 }
}

1 个答案:

答案 0 :(得分:0)

  

这种“下划线风格”有一些语义上的意义吗?

没有。我怀疑有人习惯于使用_前缀字段的Java惯例(远非通用但非常见)Java惯例,以便更容易将它们与局部变量区分开来。正如cdncat的评论所说,这是匈牙利表示法的一个特例。

无论如何,如果这些功能实际上每次只使用一次,我真的不能想到任何理由更喜欢它

def outsideFunction(param: SomeType) =
  param match {
    case result: Int => // body of _inner1
    case result: String => // body of _inner2
  }