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

Scala:value ::不是Int的成员

发布时间:2020-12-16 18:45:33 所属栏目:安全 来源:网络整理
导读:我最近开始使用 scala,我无法做出任何错误消息.对于以下代码,我得到了声明的消息(使用 eclipse): def helper: Int = List[Int] = x = x match { case 2 = 2::1 ...} 我可以通过使用List(2,1)来修复它,但是它不应该与2 :: 1相同吗? 我有类似的问题,List(…)
我最近开始使用 scala,我无法做出任何错误消息.对于以下代码,我得到了声明的消息(使用 eclipse):

def helper: Int => List[Int] = x =>  x match  {
    case 2 => 2::1
    ...
}

我可以通过使用List(2,1)来修复它,但是它不应该与2 :: 1相同吗?
我有类似的问题,List(…)方法会更难使用,所以我真的想知道我的思维错误在哪里.

解决方法

中缀运算符被解释为Scala中的方法调用.如果中缀运算符以冒号结束,则它是对右操作数的方法调用,左操作数作为其参数.否则,它是左操作数上的方法调用,右操作数作为其参数.

换句话说,如果你做x y,它与x相同. (y),即你在对象x上调用方法,y为参数.如果你做x :: y就像y.::(x)一样,在对象y上调用方法::

所以在你的例子中,你在对象1上调用方法::,这是一个Int.但是Int类没有::方法,所以这不起作用,并且会收到一条错误消息,告诉您Int类不存在::方法.

要make :: work,右操作数需要是一个列表(或者其他具有::方法的东西),所以2 :: 1 :: Nil会起作用.但是在这种情况下使用List()似乎是更清洁的替代方案.

(编辑:李大同)

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

    推荐文章
      热点阅读