scala> implicit val x=23
x: Int = 23
scala> def dos(implicit d:Int)(s:Int) = println(d+s):1: error: '=' expected but '(' found.
def dos(implicit d:Int)(s:Int) = println(d+s)
^
scala> def dos(s:Int)(implicit d:Int) = println(d+s)
dos: (s: Int)(implicit d: Int)Unit
So the implicit argument can't be the first one on a curried function.
scala> def dos(d: Int, implicit s: Int) = println(d+s):1: error: identifier expected but 'implicit' found.
def dos(d: Int, implicit s: Int) = println(d+s)
^
Can't declare an argument as implicit if it is not the first one on a non-curried function.
scala> def dos(implicit d:Int, s: Int) = println(d+s)
dos: (implicit d: Int, implicit s: Int)Unit
First argument of a non-curried function can be implicit but the rest of the arguments automatically become implicit!
No comments:
Post a Comment