如何在部分函数中使用一个常量整数作为输入?

我新的阶,我其中我要定义一个局部函数来添加三个数字,其中一个数量是恒定的和两个 数字可以作为输入被传递,并定义可采取局部 的另一种方法的使用情况作为输入并给出其立方体作为结果。如何在部分函数中使用一个常量整数作为输入?

回答:

下面的部分功能将12345对每个号码传递给它

scala> val addConstantTo: PartialFunction[(Int, Int), Int] = { 

| case (a, b) => a + b + 12345

| }

addConstantTo: PartialFunction[(Int, Int),Int] = <function1>

scala> addConstantTo((12, 34))

res4: Int = 12391

这扩展了概念,通过编程方式定义一个局部函数这增加任何数量的元组的元素的元组:

scala> def addTo(c: Int): PartialFunction[(Int, Int), Int] = { 

| case (a, b) => a + b + c

| }

addTo: (c: Int)PartialFunction[(Int, Int),Int]

scala> val pf = addTo(3)

pf: PartialFunction[(Int, Int),Int] = <function1>

scala> pf((1, 2))

res5: Int = 6

让这种下沉了一下:)

回答:

嗯......那要看哪里是你不变哪里来的?

选择1 - 您的功能形成具有恒定存在于范围的封闭件。

val yourConstant = 10 

val pf: PartialFunction[(Int, Int), Int] = {

case (x, y) => x + y + yourConstant

}

pf((5, 10))

选择2 - 你的函数有一个局部常量。

val pf: PartialFunction[(Int, Int), Int] = { 

case (x, y) => x + y + 10

}

pf((5, 10))

此外,正如许多人指出的 - 这看起来不像部分函数的用例。你确定你想要一个Partial Function,而不是一个partially applied function

,如果你正在寻找那么部分应用功能,

// first you need a curried function 

// Curries function are function which can take parameters in steps to build intermidatary functions.

def normalDef(c: Int)(x: Int, y: Int): Int = c + y + x

// normalDef: normalDef[](val c: Int)(val x: Int,val y: Int) => Int

// now you can "partially apply" this "curried" function to your partially applied function

val addTo10PartiallyApplied = normalDef(10) _

// addTo10PartiallyApplied: (Int, Int) => Int = $Lambda$1240/[email protected]

val total = addTo10PartiallyApplied(1, 2)

// total: Int = 13

以上是 如何在部分函数中使用一个常量整数作为输入? 的全部内容, 来源链接: utcz.com/qa/261033.html

回到顶部