1

我一直在查看一些用于构建数据访问层的 Play Slick 示例,并发现CatDAO 示例中的以下行有点有趣:

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

我想知道这样做的目的是什么.map { _ => () }

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

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

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

1 回答 1

3

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

于 2016-11-27T13:01:47.043 回答