我很難找到具體的答案,我知道什麼是微不足道的。我想了解塊在Scala中的工作原理。我來自java/ruby背景,看起來scala具有完全不同的使用塊的方式。瞭解斯卡拉塊
以下代碼來自Play! Framework website。我想了解什麼動作是語義。它是一個接受一個塊的對象或函數,或者兩者都不是。
object Application extends Controller {
def index = Action {
Ok(views.html.index("Your new application is ready."))
}
}
如果它是一個功能,也許這句法糖以下(在這種情況下如何斯卡拉繞過幕後塊):
def index = Action({
Ok(views.html.index("Your new application is ready."))
})
或者是一些斯卡拉語法我米不知道。
任何對Scala源代碼的引用都會幫助我理解這是如何在幕後工作的。
感謝您的回覆。所以從我收集的信息來看,這是Action.apply()的合成糖。除去糖,整個陳述會是什麼樣子? – b1nd
這個聲明基本上是'Action.apply(Ok.apply(views.html.index(「Your new application is ready。」)))'。如果你在我提供的URL中查看'apply()'的定義,你會發現在參數類型之前有一個箭頭。這只是標誌着一個'按名稱'參數,如上所述。 (另外,並非巧合的是,名稱的語法看起來像沒有參數的匿名函數) – yan
鏈接播放文檔被打破。偶爾,SO解析器會弄亂包含美元符號的鏈接。 –