首页 > 解决方案 > Scala为什么_(下划线)适用于第一个参数而不是第二个参数

问题描述

我正在学习 scala,但我无法理解以下内容。

为什么以下工作?

val colNames = List("salary_new", "age_new", "loc_new")
val colRenameMap = colNames.map(_ -> "a").toMap

但跟随没有?是吗,我只能_用作第一个参数?这是如何_工作的?

val colRenameMap = colNames.map(_ -> _.split("")).toMap

标签: scala

解决方案


Luis 已经回答了这个问题,所以让我们将其转换为正确的答案。

val colRenameMap = colNames.map(_ -> _.split("")).toMap

翻译成

val colRenameMap = colNames.map((a,b) => a -> b.split("")).toMap

每次使用 时_,它都会引用不同的参数。使用它两次,你会得到一个有两个参数的函数,而不是需要单参数的函数map。在这种情况下,您必须明确并命名您的唯一参数才能使用它两次

val colRenameMap = colNames.map(a => a -> a.split("")).toMap

推荐阅读