这样做的目的是什么: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
类型的值)。
我一直在查看一些用于构建数据访问层的 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
类型的值)。