gpt4 book ai didi

Scala: value::不是 Int 的成员

转载 作者:行者123 更新时间:2023-12-04 13:16:29 25 4
gpt4 key购买 nike

我最近开始使用 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 :: yy.::(x) ,调用方法 ::在对象上 y .

因此,在您的示例中,您正在调用方法 ::在对象上 1 ,这是一个 Int .然而类(class)Int没有 ::方法,所以这不起作用,您会收到一条错误消息,告诉您 :: Int 的方法不存在类(class)。

使::工作,正确的操作数需要是一个列表(或其他具有 :: 方法的东西),所以 2 :: 1 :: Nil会工作。但是在这种情况下使用 List()似乎是更清洁的选择。

关于Scala: value::不是 Int 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24681777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com