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") }) } }