检测传递给Ints列表中的flatMap的函数中的参数类型

时间:2014-06-11 21:43:36

标签: scala types

为什么会失败:

(1 to 10).flatMap(List(_+1))

使用:

error: missing parameter type for expanded function ((x$1) => x$1.$plus(1))

我必须这样做:

(1 to 10).toList.flatMap( (x: Int) => List(x+1))

为什么它不能自动检测类型:

(1 to 10).flatMap(List(_))

1 个答案:

答案 0 :(得分:2)

它可以自动检测参数类型,只要它没有埋得太深:

(1 to 10).flatMap(x => List(x + 1))

也许它试图将函数文字(_ + 1)视为List.apply的参数?