gpt4 book ai didi

scala - 具有多个参数列表的匿名函数

转载 作者:行者123 更新时间:2023-12-03 20:18:33 25 4
gpt4 key购买 nike

我正在尝试在具有多个参数列表的 scala 中声明一个简单的方法。

这两个工作。

scala> def add(a:Int, b:Int) = a+ b
add: (a: Int, b: Int)Int

scala> def add(a:Int)(b:Int) = a + b
add: (a: Int)(b: Int)Int

这不...
scala> val add = (a:Int)(b:Int)=>a + b

<console>:1: error: not a legal formal parameter.
Note: Tuples cannot be directly destructured in method or function parameters.
Either create a single parameter accepting the Tuple1,
or consider a pattern matching anonymous function: `{ case (param1, param1) => ... }
val add = (a:Int)(b:Int)=>a + b

但是为什么...我要做的就是分配一个匿名函数,该函数将多个参数列表赋值给一个值。它适用于单个参数列表,但不适用于多个参数列表。

最佳答案

声明 curried 参数时,这只是语法问题。

scala> val add = (a:Int) => (b:Int) => a + b
add: Int => (Int => Int) = <function1>

scala> add(4)
res5: Int => Int = <function1>

scala> res5(9)
res6: Int = 13

匿名使用示例:
scala> def doit(f: Int => Int => String): String = f(2)(5)
doit: (f: Int => (Int => String))String

scala> doit(a => b => (a+b).toString)
res8: String = 7

关于scala - 具有多个参数列表的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38274810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com