任何想法为什么以下不工作?scala:皮条客我的图书馆有超载
implicit def listExtensions[A](xs : List[A]) = new ListExtensions(xs)
class ListExtensions[A](xs : List[A])
{
def foreach[B](f: (A, Int) => B)
{
var i = 0;
for (el <- xs)
{
f(el, i);
i += 1;
}
}
}
var a = List(1, 2, 3);
a foreach { (el, i) => println(el, i) };
当我编译此与FSC 2.8.1时,得到以下错误:“错号的参数;预计= 1:一个foreach {(EL,I)=>的println(EL,I)} ;”。我做错了什么或者根本没有办法通过“pimp my library”技巧来添加重载方法?
P.S.我不知道如何实现foreach的iterate-current-index风格(我知道zipWithIndex方法),而是关于重载和隐式转换如何共同发挥作用。
可能重复(http://stackoverflow.com/questions/4443783/overriding-arithmetic-operators-on -INT-经由隐-转化) – 2010-12-19 09:20:10