Scala映射参数不一致

时间:2018-04-03 20:55:37

标签: scala

我们说我有这个方法

def mapFunction(): StructType = {
  val elements: List = List(1, 2, 3)
  StructType(elements map function)
}

其中的功能是

def function(listEle: Int): StructField = {
  // doesn't matter what happens here
}

此代码有效。

我如何致电"功能"如果我添加更多参数? e.g。

def function(listEle: Int, anotherParam1: Int, anotherParam2: Int): StructField = {
  //
}

我试过

def mapFunction(): StructType = {
  val elements: List = List(1, 2, 3)
  StructType(elements map function(4, 5))
}

但它抱怨该方法缺少参数bc函数需要3个输入。但是,我想保持这种方式调用"元素映射函数"返回StructType。

2 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点,但最接近你的例子的是;

def mapFunction(): StructType = {
  val elements: List = List(1, 2, 3)
  StructType(elements.map(function(_, 4, 5)))
}

答案 1 :(得分:0)

您在第一个示例中执行的操作是隐式将 android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintDimensionRatio="2:1" 提供的回调参数传递给您的map回调。

如果您使用以下表格撰写,您可以轻松了解如何达到预期效果:

function

更改了更多参数的代码:

def mapFunction(): StructType = {
  val elements = Seq(1, 2, 3)
  StructType(elements.map(element => function(element)))
}

其他例子:

def mapFunction(): StructType = {
  val elements = Seq((1, 11, 111), (2, 22, 222), (3, 33, 333))
  StructType(elements.map(element => function(element._1, element._2, element._3)))
}