使用+运算符时类型不匹配

时间:2016-06-21 15:38:12

标签: scala overloading operator-keyword

我目前正在尝试学习如何使用Scala,但我遇到了一些语法问题。

当我输入scala提示时:

list

我收到以下错误:

import scala.collection.immutable._
var q = Queue[Int](1)
println((q+1).toString)

我只是想使用如下定义的队列的重载+运算符:

  

def + [B>:A](elem:B):队列[B]   创建一个新队列,并在旧队列的末尾添加元素。   参数   elem - 要插入的元素

但似乎scala会进行字符串连接。那么,你能帮我理解如何在队列中添加一个元素(不使用完美的enqueue;我想使用+运算符)?也许,你能否给我一些关于那种对初学者来说有点奇怪的行为的解释?

谢谢

1 个答案:

答案 0 :(得分:6)

您使用了错误的运算符(请参阅docs):

+

由于MOD(COLUMNS(X),6)=0 运算符在给定这些类型时没有其他含义,因此Scala默认为字符串连接,从而为您提供类型不匹配错误。