gpt4 book ai didi

Scala 柯里化(Currying)语法解释

转载 作者:行者123 更新时间:2023-12-02 09:37:35 24 4
gpt4 key购买 nike

我是 scala 新手。

我想了解下面代码的语法

object PlainSimple {

def main(args:Array[String])
{
val m = add(5)
println(m(3))
}

def add(x:Int):Int=>Int =
{
y=>y+x
}

}

我的问题是我们在哪里说 add 函数返回另一个函数?

Int=>Int 是什么意思?

在add函数中什么叫做y?为什么我们使用它而不在任何地方声明它?

如果想在add方法中添加多行,需要做什么?

最佳答案

My question is Where are we saying that the add function is returning another function?

就在这里

def add(x: Int): Int => Int = y => y + x

Int => Int 是一种函数类型。这只是语法糖,但你也可以将其写为

def add(x:Int): Function1[Int, Int] = y => y + x

现在,y 是什么? y => y + x 是一个 lambda,即匿名函数。该 lambda 接受一个参数,我们现在将其称为 y

这里有一个关于 scala 中的匿名函数及其语法的很好的引用:http://docs.scala-lang.org/tutorials/tour/anonymous-function-syntax.html

为了在方法内有多行,只需使用大括号

def add(x:Int): Function1[Int, Int] = { y =>
println("whaveter")
y + x
}

关于Scala 柯里化(Currying)语法解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38793290/

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