2011-10-16 34 views
4

這肯定是一個愚蠢的問題,但我很難過。我現在已經閱讀了Odersky的書以及所有可以獲得的教程,我似乎無法找到任何解釋一些比較模糊的Scala類型關係的東西。例如,什麼是=:=?它被稱爲here,但似乎沒有在Scala語言參考中。是否有一些參考資料解釋了這個,我錯過了?我該如何學習更多關於Scala的類型關係?

+3

特別針對'=:='和相關的操作符,請參閱http://stackoverflow.com/questions/3427345/what-do-and-mean-in-scala-2-8-and-where-are-the-they -documented。 –

+0

來自artima.com的書籤[1st ed Staircase book](http://www.artima.com/pins1ed/),該索引適用於真正(主要)方法/功能的符號「操作符」: –

+0

Alexey:啊! !謝謝!非常有用...和哇!這很奇怪! – Tim

回答

3

這只是一個「正常」的操作符,雖然有點模糊(以前我從來沒有用過或聽說過的;-)。 =:=運算符在[magicical] Predef object中定義。

見12.5節:在SLS的PREDEF對象:

的PREDEF對象日音響未列名標準功能和類型別名Scala程序。 它[Predef]總是隱式導入的,所以它的所有定義的成員都可以不經過驗證。

(補充勞工計劃沒有提到=:=或少數人,很多都是「實施細則」)。

編碼愉快。

+1

Pedantry:'=:='不是操作員;這是一個類 –

+0

@Luigi Plinge我試圖弄清楚*它是如何應用的,但失敗了。一步一步的「指導」如何在Predef甚至這樣的東西的作品將是很好的! (知道嗎?:-) – 2011-10-17 00:45:11

0

Scaladoc說:

A =的實例:= B證人,該類型A和B相等。

我沒有找到任何問題,也沒有任何麻煩理解它(儘管事先知道我有偏見)。爲了改進它,我想知道你有什麼問題:找到它,理解它,或兩者兼而有之?

+0

我沒有意識到它可能在Scala API中 - 也不是它是*類*!我認爲這是一種內置的類型關係,因此期望在語言定義本身。 (Google也無法輕鬆搜索這些字符串。) – Tim