0
我想用部分應用的方法定義一個類的方法。如果沒有完全應用這種方法,這樣做有可能嗎?如何用部分應用函數定義類方法?
這是我最好的拍攝:
def getFile1(arg1: String) (implicit execution: ExecutionContextExecutor): Future[File] =
getFile("file 1")_
def getFile2(arg1: String) (implicit execution: ExecutionContextExecutor): Future[File] =
getFile("file 2")_
def getFile(fileName: String)(arg1: String)(implicit execution: ExecutionContextExecutor): Future[File] = //...
會發生什麼事是,雖然,而不是把getFile1(arg1)
和getFile('file 1', arg1)
等同,斯卡拉試圖評估getFile("File 2")_
,看到一個錯誤,因爲getFile("File 2")_
類型是功能,而不是一份文件。
我知道這就是發生了什麼。我所問的是,是否有辦法解決這個問題。 –
是(或否,取決於視圖):根據* actual *簽名返回正確的類型或更改簽名。沒有這樣的'元別名'功能。即使創建一個'val'(在這種情況下,隱式將不起作用),它仍然需要*按照部分方法正確輸入*。 – user2864740