Scala foldRight中令人困惑的类型不匹配
发布时间:2020-12-16 09:53:02 所属栏目:安全 来源:网络整理
导读:有人可以告诉我这个函数定义有什么问题吗? def incr[Int](l: List[Int]): List[Int] = l.foldRight(List[Int]())((x,z) = (x+1) :: z) Scala编译器抱怨传递给foldRight的函数体中的类型不匹配: console:8: error: type mismatch; found : Int(1) required:
有人可以告诉我这个函数定义有什么问题吗?
def incr[Int](l: List[Int]): List[Int] = l.foldRight(List[Int]())((x,z) => (x+1) :: z) Scala编译器抱怨传递给foldRight的函数体中的类型不匹配: <console>:8: error: type mismatch; found : Int(1) required: String l.foldRight(List[Int]())((x,z) => (x+1) :: z) ^ 这里有什么问题? 解决方法
使用def incr [Int],您已经定义了一个名为Int的任意类型,它会覆盖现有的类型.摆脱[Int]类型参数,它工作正常,或使用不同的名称,如T.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |