做的目的是什么:x.map {_ => ()}

时间:2016-11-27 12:27:23

标签: scala slick play-slick

我一直在研究一些用于构建数据访问层的Play Slick示例,并发现CatDAO example中的以下行有点引人入胜:

def insert(cat: Cat): Future[Unit] = db.run(Cats += cat).map { _ => () } 

我想知道做.map { _ => () }

的目的是什么

UPDATE :在Scala解释器中运行以下内容提供了一些线索,但仍然不完全清楚为什么在上面的插入方法中需要它。

scala> val test = Seq(1, 2, 3)
test: Seq[Int] = List(1, 2, 3)

scala> test map { _ => () }
res0: Seq[Unit] = List((), (), ())

1 个答案:

答案 0 :(得分:3)

如果没有该映射,db.run方法将返回插入数据库的大量记录(返回类型将为Future[Int])。然而,代码的作者并不需要这个价值,他希望他的API能够返回Future[Unit]。这就是他使用map的原因,在这种情况下将Int映射到Unit()是一个代表Unit的值类型)。