gpt4 book ai didi

scala - 为什么 += 不适用于列表?

转载 作者:行者123 更新时间:2023-12-04 17:54:08 28 4
gpt4 key购买 nike

虽然我知道有更多的惯用方法可以做到这一点,但为什么这段代码不起作用? (大多数情况下,为什么第一次尝试仅使用 x += 2 不起作用。)这些看起来很奇特的(至少对于 Scala 新手而言)错误消息是否是一些 implicit def 魔法无法正常工作?

scala> var x: List[Int] = List(1)
x: List[Int] = List(1)

scala> x += 2
<console>:7: error: type mismatch;
found : Int(2)
required: String
x += 2
^

scala> x += "2"
<console>:7: error: type mismatch;
found : java.lang.String
required: List[Int]
x += "2"
^

scala> x += List(2)
<console>:7: error: type mismatch;
found : List[Int]
required: String
x += List(2)

最佳答案

您使用了错误的运算符。

要附加到集合,您应该使用 :+ 而不是 + 。这是因为在尝试使用 + 连接到字符串来反射(reflect) Java 的行为时会出现问题。

scala> var x: List[Int] = List(1)
x: List[Int] = List(1)

scala> x :+= 2

scala> x
res1: List[Int] = List(1, 2)

如果您想添加,也可以使用 +:

关于scala - 为什么 += 不适用于列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135039/

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