【发布时间】:2019-07-31 16:25:34
【问题描述】:
我正在尝试学习 scala。我正在查看有关队列的文档 (https://www.scala-lang.org/api/current/scala/collection/immutable/Queue.html)。
据我了解,以冒号结尾的方法是右结合的。但是,对我来说,++: 似乎并没有这样做:
import scala.collection.immutable.Queue
val q0 = Queue(0)
val q1 = Queue(1)
q0 ++ q1 // yields Queue(0,1) as I expected
q0 ++: q1 // yields Queue(0,1) as well; I expected Queue(1,0)
文档和实验似乎都表明 ++: 不是正确关联的。 ++ 和 ++ 的文档:说左后跟右,这就是上面发生的事情,我只是不明白为什么。显然,我缺少一些东西。有人可以帮我澄清一下吗?
【问题讨论】:
-
为什么你会期待不同的结果?该方法的文档清楚地表明它给出了与
++:相同的结果。我懒得去查了,但我假设它只是简单地实现为def ++:(other) = other ++ this。
标签: scala syntactic-sugar associativity