0
我試圖從Scala in Depth在REPL運行下面的代碼片段:什麼是錯的VAL NOTNULL [T]:T =>布爾= _ =從斯卡拉空的深度
val notNull[T]: T => Boolean = _ != null
的解釋丟給我以下錯誤:
<console>:7: error: missing parameter type for expanded function ((x$1) => x$1.$bang$eq(null))
val notNull[T]: T => Boolean = _ != null
^
<console>:7: error: not found: type T
val notNull[T]: T => Boolean = _ != null
^
<console>:7: error: not found: type notNull
val notNull[T]: T => Boolean = _ != null
^
<console>:7: error: not found: type T
val notNull[T]: T => Boolean = _ != null
^
scala> val notNull[T](f1: T => Boolean) = _ != null
<console>:1: error: ')' expected but '=>' found.
val notNull[T](f1: T => Boolean) = _ != null
也許我不理解這裏的發言,但不是從書基本上說,聲明它返回一個函數,T作爲參數,返回類型T的VAL NOTNULL聲明一個布爾值。 `_! = null通過獲取參數並將其與null進行比較來執行該函數,實質上返回一個布爾值?
爲什麼編譯器在這裏拋出所有這些錯誤?
Vals可以(並且總是)鍵入,而'Function1'對於'val'來說是一個非常正常的類型。他們不能的是_generic_(即有'[T]''的類型參數)。 –
錯誤的權利,多數民衆贊成我打字的意思 - 我原本是一般打字 - 但困惑於確切的術語。謝謝。 –