【发布时间】:2016-06-21 15:38:11
【问题描述】:
我目前正在尝试学习如何使用 Scala,但遇到了一些语法问题。
当我输入 scala 提示符时:
import scala.collection.immutable._
var q = Queue[Int](1)
println((q+1).toString)
我收到以下错误:
<console>:12: error: type mismatch;
found : Int(1)
required: String
println((q+1).toString)
我只是想使用下面定义的队列的重载+运算符:
def +[B >: A](elem : B) : 队列[B] 创建一个新队列,在旧队列末尾添加元素。 参数 elem - 要插入的元素
但似乎 scala 进行了字符串连接。那么,您能帮我理解如何将元素添加到队列中(不使用完美工作的 enqueue;我想使用 + 运算符)吗?也许,你能给我解释一下对于初学者来说似乎有点奇怪的行为吗?
谢谢
【问题讨论】:
-
你从哪里得到这个定义?它与当前文档不一致
-
该方法来自一些旧版本的 Scala。它在 2.9 中被删除。使用更新的文档。
-
非常感谢。 Google 将scala-lang.org/api/2.5.0/scala/collection/immutable/Queue.html 作为“scala queue immutable”的第二个结果。我没有那么小心,我没有注意到它是针对 2.5 版的。我高估了谷歌搜索引擎的力量:)
标签: scala overloading operator-keyword