一天一段scala代碼(十一)

一天一段scala代碼(十一)

       爲了更好的駕馭spark,最近在學習scala語言特性,主要看《快學scala》,順便把一些自己認爲有用的代碼記下來。

package examples




class Fraction(n:Int,d:Int)
{
  private val num =n
  private val den=d
  def *(other:Fraction) = new Fraction(num*other.num,den*other.den)
  //重載稱號操作符
}


object Fraction
{
  def apply(n:Int,d:Int)  = new Fraction(n,d)
  def unapply(input:Fraction)=
  {
    if(input.den==0) None
    else Some((input.num,input.den))
  }
}





object Example11 extends App{
 //元組提取器
  val Fraction(a,b) = Fraction(1,2)*Fraction(1,3)
  println(a,b)
  
  
  
  //額外, 單個參數或者無參數的需要用option;提取任意長度的需要用unapplaySeq
  
  
  
}

本文作者:linger
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章