2011-06-18 12 views

回答

18

問題是+被重載以將String連接到非字符串。因此,無論何時在沒有它的類型上使用+方法,您都會收到與實際問題無關的錯誤消息:您擁有的類型不是您期望的類型。

+::+來取代它。

20

在Daniel的回答中,+也是一個非常糟糕的操作符,用於插入集合。在數學上,操作符具有非常傳統的含義,其中的部分含義是關聯性的保證。不幸的是,當您將Int添加到Vector[Int]時,關聯性是一種保證,根本沒有任何意義。因此,對於任何有代數訓練的人來說,+總是一個令人困惑的運算符。

+::+在幾個方面是優越的,其中最重要的是沒有關聯性的期望。事實上,運營商的非對稱性意味着-關聯性,這正是它們的語義。另外+::+鏡像對方非常好,而+:是右對應的,它們都分別爲集合前置和後綴提供了非常自然的API。

相關問題