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

What's the purpose of doing: x.map { _ => () }

我一直在查看一些用于构建数据访问层的 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((), (), ())

如果没有该映射 db.run 方法,将 return 插入数据库的记录数量(returning 类型将是 Future[Int] 那么)。然而代码的作者不需要那个值,他希望他的 API 改为 return Future[Unit]。这就是为什么他使用 map,在这种情况下将 Int 映射到 Unit() 是表示 Unit 类型的值)。