object Helpers{
implicit class IntWithTimes(x:Int){ //用implicit class说明了IntWithTimes类是一个隐式类,它表示:一个Int整数自动具有times方法
def times[A](f: => A):Unit = {
def loop(current:Int):Unit = {
if(current > 0) {
f
loop(current - 1)
}
}
loop(x)
}
}
}
object ImplicitclassTest {
def main(args: Array[String]): Unit = {
import Helpers._
val i = 3
i.times(println(i)) //编译器会自动将这个函数println(i)转换成times中的参数:f:=>A,也就是说会将println(i)这句连续执行三次
i.times(()=>{ //这种形式的函数参数为什么不能正常println三次呢?
println("test")
})
}
}