加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读