Scala 为什么+;=不';你不能处理列表吗?
虽然我知道有更多的idomatic方法可以做到这一点,但为什么这段代码不起作用呢?(大多数情况下,为什么第一次尝试仅使用Scala 为什么+;=不';你不能处理列表吗?,scala,scala-collections,Scala,Scala Collections,虽然我知道有更多的idomatic方法可以做到这一点,但为什么这段代码不起作用呢?(大多数情况下,为什么第一次尝试仅使用x+=2不起作用。)这些错误消息(至少对于Scala的新手来说)看起来很奇怪吗?一些隐式def魔术不起作用 scala> var x: List[Int] = List(1) x: List[Int] = List(1) scala> x += 2 <console>:7: error: type mismatch; found : Int(2)
x+=2
不起作用。)这些错误消息(至少对于Scala的新手来说)看起来很奇怪吗?一些隐式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)
scala>varx:List[Int]=List(1)
x:List[Int]=List(1)
scala>x+=2
:7:错误:类型不匹配;
发现:Int(2)
必需:字符串
x+=2
^
scala>x+=“2”
:7:错误:类型不匹配;
找到:java.lang.String
必需:列表[Int]
x+=“2”
^
scala>x+=列表(2)
:7:错误:类型不匹配;
找到:列表[Int]
必需:字符串
x+=列表(2)
您使用了错误的运算符
若要附加到集合,应使用:+
,而不是+
。这是因为当尝试使用+
连接到字符串来镜像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 API中的。将元素添加到列表的方法有:
2 +: x
x :+ 2
2 :: x