在Scala的case class中,"_"代表通配符,用于匹配任何值。

17 浏览
0 Comments

在Scala的case class中,"_"代表通配符,用于匹配任何值。

这个问题在这里已经有答案:

`Scala`中下划线的所有用途是什么?

我刚刚在一个`Play` / `Scala`的`hibernate`实例中发现了这样的一个`case class`....

class Buddy(first: String, last: String) {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
var id: Int = _
var firstName: String = first
var lastName: String  = last
def this() = this (null, null)
override def toString = id + " = " + firstName + " " + lastName 
}

能有人解释一下这行代码\"var id:Int = _\"的含义吗?

这段代码中的 \"__\"究竟意味着什么?我猜它与getter方法无关,因为在这种情况下,我猜getter方法名将是id_。

提前致谢...

admin 更改状态以发布 2023年5月21日
0
0 Comments

这里有一个很好的解释下划线的含义以及一些用例。

我喜欢看到它作为某些操作的通配符。

来自链接博客的例子:

expr match {
  case List(1,_,_) => " a list with three element and the first element is 1"
  case List(_*)  => " a list with zero or more elements "
  case Map[_,_] => " matches a map with any key type and any value type "
  case _ =>
  }

另一个例子:

val someList = Seq(1,2,3,4,5)
//Prints every element of the list
someList.foreach(println(_))

0
0 Comments

"

"_"意味着"default value",现在不同数据类型的默认值可能不同。例如

default is 0 for Int
default is 0.0 for double
default is null for reference types

等等

在您的情况中,值为0

"

0