深圳大数据学习:方法的嵌套--【千锋】

深圳大数据学习: 方法的嵌套 【千锋】

方法里嵌套定义其他方法

示例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)

 

    原文作者:andy888168
    原文地址: http://blog.itpub.net/69947096/viewspace-2660985/
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞