gpt4 book ai didi

scala - 为scala中的函数参数设置默认值

转载 作者:行者123 更新时间:2023-12-02 21:15:53 27 4
gpt4 key购买 nike

我正在尝试为 scala 中的匿名函数设置默认值,因此无法找到任何解决方案。希望有人能帮助我。

我有以下结构,

case class A(id:Int = 0)

case class B(a:A)

object B {
def func1(f:Int = 0)={
........
}
def func2(f:A => B = (how to give default value ?))={
case Nothing => {
//do something....
}
case _ => {
//do some other thing......
}
}
}

基本上,我想将参数传递作为可选。我怎样才能实现这个目标?

最佳答案

与任何其他默认参数一样:

scala> def test(f: Int => Int = _ + 1) = f
test: (f: Int => Int)Int => Int

scala> test()(1)
res3: Int = 2

或使用字符串:

scala> def test(f: String => String = identity) = f
test: (f: String => String)String => String

scala> test()
res1: String => String = <function1>

scala> test()("Hello")
res2: String = Hello

编辑:

如果您想使用默认提供的函数,则必须显式使用 (),否则 Scala 不会粘贴默认参数。

如果您不想使用默认函数并提供显式函数,只需自己提供即可:

scala> test(_.toUpperCase)("Hello")
res2: String = HELLO

关于scala - 为scala中的函数参数设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19090103/

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