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相同吗? 解决方法
中缀运算符被解释为Scala中的方法调用.如果中缀运算符以冒号结束,则它是对右操作数的方法调用,左操作数作为其参数.否则,它是左操作数上的方法调用,右操作数作为其参数.
换句话说,如果你做x y,它与x相同. (y),即你在对象x上调用方法,y为参数.如果你做x :: y就像y.::(x)一样,在对象y上调用方法:: 所以在你的例子中,你在对象1上调用方法::,这是一个Int.但是Int类没有::方法,所以这不起作用,并且会收到一条错误消息,告诉您Int类不存在::方法. 要make :: work,右操作数需要是一个列表(或者其他具有::方法的东西),所以2 :: 1 :: Nil会起作用.但是在这种情况下使用List()似乎是更清洁的替代方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |