Scala中匿名函数如果参数只出现一次可以用下划线代替,那如果map映射不做操作,返回每个元素的自身可不可以括号内只写下划线呢?
val list = List(1, 2, 3, 4)
val mapList: List[Int] = list.map(_) // error
IDE报错,自动推断出 map( _ ) 得到结果的类型为 Function1[Int => B_ , List[Nothing]] 而不是 List[Int],这表示返回的是带一个参数的方法,该参数类型为Int=>,返回结果类型为List[Nothing];推测 map( _ ) 和 map _ 一样都表示map函数本身,想到参数用下划线代替可能为偏应用函数,实际上,map _ 就是所有参数都省略的偏应用函数。