![](/img/trans.png)
[英]Scala, Currying on multi parameter-group method including implicit params?
[英]Scala,Currying on partial function parameter and implicit parameter
當我運行以下代碼時,出現一些錯誤:
Error:(15, 25) missing parameter type for expanded function
The argument types of an anonymous function must be fully known. (SLS 8.5)
Expected type was: ?
testFuture onComplete({
^
碼:
object TestFuture extends App{
val exe = ExecutionContext.fromExecutor(Executors.newCachedThreadPool())
testFuture onComplete({
case Success((str,i)) =>{
println(str,i)
}
case Failure(e) =>{
e.printStackTrace()
}})(exe)
println(Runtime.getRuntime.availableProcessors())
Thread.sleep(2000)
def testFuture:Future[(String,Int)] = Future[(String,Int)] {
Thread.sleep(1000)
("oh my sky",12)
}(exe)
}
當我用“隱式”修飾“ val exe”並調用currying函數而沒有像下面的代碼那樣顯式使用“ exe”時,它運行正確。 你能告訴我為什么嗎?
object TestFuture extends App{
implicit val exe = ExecutionContext.fromExecutor(Executors.newCachedThreadPool())
testFuture onComplete({
case Success((str,i)) =>{
println(str,i)
}
case Failure(e) =>{
e.printStackTrace()
}})
println(Runtime.getRuntime.availableProcessors())
Thread.sleep(2000)
def testFuture:Future[(String,Int)] = Future[(String,Int)] {
Thread.sleep(1000)
("oh my sky",12)
}
}
我猜想,infix方法調用不支持多個參數列表。 嘗試使用點符號:
testFuture.onComplete{
case Success((str,i)) =>
println(s"$str, $i")
case Failure(e) =>
e.printStackTrace()
}(exe)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.