Scala的apply

541732025發表於2015-11-16

點選(此處)摺疊或開啟

  1. class ApplyTest{
  2.   def apply() = println("I am into Spark so much!!!")
  3.    
  4.   def haveATry{
  5.     println("Have a try on apply!")
  6.   }
  7. }

點選(此處)摺疊或開啟

  1. object ApplyTest{
  2.   def apply() = {
  3.     println("I am into Scala so much!!!")
  4.     new ApplyTest
  5.   }
  6. }

點選(此處)摺疊或開啟

  1. object ApplyOperation {
  2.   def main(args: Array[String]) {
  3.     val array = Array(1,2,3,4,5)
  4.     val a = ApplyTest() //這裡並沒有new,然後確實返回了類的例項
  5.     a.haveATry
  6.   }
  7. }
結果:
I am into Scala so much!!!
Have a try on apply!

在一個類的伴生物件裡面,實現apply方法,在這裡面可以建立類的例項。譬如val a = Array(1, 2, 3)就是使用了Array的apply方法。

同樣,在class裡面也可以使用apply方法:

點選(此處)摺疊或開啟

  1. object ApplyOperation {
  2.   def main(args: Array[String]) {
  3.      val a = new ApplyTest
  4.      a.haveATry
  5.      println(a())  //呼叫class的apply方法
  6.   }
  7. }
結果:
Have a try on apply!
I am into Spark so much!!!
()

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-1839759/,如需轉載,請註明出處,否則將追究法律責任。

相關文章