4
我發現了一個奇怪類型在this代碼在github:目的=> 0
final class StaticRouteB[Page, O](private val f: (=> Action[Page]) => O) extends AnyVal {
def ~>(a: => Action[Page]): O = f(a)
}
類型的
f
。這是什麼意思 ?我的猜測是,它是一個函數,名稱參數調用。從來沒有見過它,所以我不確定它是什麼或者這個東西是如何工作的。有沒有辦法將這種類型轉換爲更「標準」的東西? (以上我的意思,所以它不使用
(=> Action[Page]) => O)
類型的代碼?是這種類型的只是一些語法糖?)不知尤其是,如果我通過
Action[Page] => O
爲f
創建StaticRouteB
時會發生什麼?我會得到一個編譯錯誤?運行時錯誤?爲什麼?我的意思是,(=> ...)
的目的是什麼?如果沒有通過正確的函數或改變f
參數的評估策略,是否會給出編譯錯誤?我的意思是爲什麼有人想要這樣的類型?出於什麼目的?
謝謝,有沒有辦法將此類型轉換爲更「標準」的東西? – jhegedus
另外,我特別想知道,如果我在創建'StaticRouteB'時將'Action [Page] => O'作爲'f'通過了會發生什麼?我會得到一個編譯錯誤?運行時錯誤? – jhegedus
這是寫這種類型的標準和最簡單的方法。如果需要,可以使用類型別名。但是這不會簡化「底層」的任何事情。 – Tyth