深圳大資料學習:方法的巢狀--【千鋒】

andy888168發表於2019-10-22

深圳大資料學習: 方法的巢狀 -- 【千鋒】

方法裡巢狀定義其他方法

示例1

object  EmbedDemo {
  
   def   add3 (x:Int,y:Int,z:Int)={
     def   add2 (x:Int,y:Int)={
      x+y
    }
     add2 ( add2 (x,y),z)
  }

   def   main (args: Array[String]): Unit = {
      println ( add3 ( 1 , 2 , 3 )) //6
  }
}

示例2

def   factorial (x: Int): Int = {
def   fact (x: Int, accumulator: Int): Int = {
       if  (x <= 1 ) accumulator
       else   fact (x - 1 , x * accumulator)
    }  
     fact (x, 1 )
 }

  println ( "Factorial of 2: "  + factorial ( 2 ))
  println ( "Factorial of 3: "  + factorial ( 3 ))

方法的多型

Scala裡方法可以透過型別實現引數化,類似泛型。

def  listOfDuplicates[A](x: A, length: Int): List[A] = {
   if  (length < 1 )
    Nil
   else
    x :: listOfDuplicates (x, length - 1 )
}
println (listOfDuplicates[Int]( 3 , 4 ))   // List(3, 3, 3, 3)
println ( listOfDuplicates ( "La" , 8 ))   // List(La, La, La, La, La, La, La, La)

 


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

相關文章