Scala高阶函数混乱
发布时间:2020-12-16 18:10:07 所属栏目:安全 来源:网络整理
导读:在 Scala中有高阶函数,从我理解的函数返回函数或接受函数的函数. 例如,这是从Int到Int的函数的高阶函数: def highOrderFunc(f: Int = Int) = { ???} 为什么当我用List(1,2,3)调用highOrderFunc时它会编译?从这个签名我虽然我需要通过一个功能…我在这里很
在
Scala中有高阶函数,从我理解的函数返回函数或接受函数的函数.
例如,这是从Int到Int的函数的高阶函数: def highOrderFunc(f: Int => Int) = { ??? } 为什么当我用List(1,2,3)调用highOrderFunc时它会编译?从这个签名我虽然我需要通过一个功能…我在这里很困惑,有人可以解释一下吗? 解决方法
List [A]扩展了Seq [A],它也扩展了PartialFunction [Int,A]:
trait Seq[+A] extends PartialFunction[Int,A] with Iterable[A] with GenSeq[A] with GenericTraversableTemplate[A,Seq] with SeqLike[A,Seq[A]] 并且PartialFunction [Int,A]扩展Function1 [A,B]或(A => B).在你的情况下,A是Int,所以Int => Int是PartialFunction [Int,Int]的父级,它是Seq [Int]的父级,它是List [Int]的父级. 这就是为什么你可以将List [Int]传递为Function1 [Int,Int]或Int =>诠释 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |