我试图理解map
功能的使用,并在下面的代码中强调_
。 keys
是List[String]
,df
是DateFrame
。我运行一个示例,发现listOfVal是一个列类型列表,但有人可以帮助解释这是如何工作的吗? _
在这种情况下意味着什么以及map
功能应用了什么?非常感谢
val listOfVal = keys.map(df(_))
ps:我已经阅读了建议的两个问题,但我认为它们是不同的用例
答案 0 :(得分:1)
在Scala中,_
可以充当匿名函数的占位符。例如:
List("A", "B", "C").map(_.toLowerCase)
// `_.toLowerCase` represents anonymous function `x => x.toLowerCase`
// res1: List[String] = List(a, b, c)
List(1, 2, 3, 4, 5).foreach(print(_))
// `print(_)` represents anonymous function `x => print(x)`
// res2: 12345
在示例代码中,keys.map(df(_))
相当于:
keys.map(c => df(c))
我们假设您的keys
是列名列表:
List[String]("col1", "col2", "col3")
然后它只是映射到:
List[Column](df("col1"), df("col2"), df("col3"))