gpt4 book ai didi

scala - 应用于 Scala 函数的类型参数

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

我试图理解应用于函数的类型参数。

我想在下面的方法中使用通用类型,但为了我的理解使用 String 和 Int。

当我如下定义一个函数时

  def myfunc[Int](f:String => Int):Int =  {
Integer.min(1,2)
}

它提示

 found   : scala.this.Int
required: Int&0
Integer.min(1,2)

但是,如果我删除函数的返回类型(据我所知这不是必需的),它可以正常编译。

我无法推断为什么删除返回类型会使编译成功。

感谢您的帮助。

-阿米特

最佳答案

尝试

def myfunc(f:String => Int):Int =  {
Integer.min(1,2)
}

当您编写 def myfunc[Int](f:String => Int):Int 时,您声明了类型参数 Int,它隐藏了标准类型 scala。诠释。这与声明 def myfunc[A](f:String => A):A 相同。当您删除返回类型时,它被推断为 scala.Int,即 def myfunc[A](f:String => A)def myfunc[A] (f:String => A):Int

关于scala - 应用于 Scala 函数的类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57718070/

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