请选择 进入手机版 | 继续访问电脑版

好程序员-千锋教育旗下高端IT职业教育品牌

400-811-9990
我的账户
好程序员

专注高端IT职业培训

亲爱的猿猿,欢迎!

已有账号,请

如尚未注册?

[BigData] 好程序员大数据教程Scala系列之方法的嵌套和方法多态

[复制链接]
叶子老师 发表于 2019-10-12 14:05:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
好程序员大数据教程为大家分享Scala系列之方法的嵌套和方法多态
方法里嵌套定义其他方法
示例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)
好程序员大数据教程http://www.goodprogrammer.org/bigdata.shtml

精彩内容,一键分享给更多人!
回复

使用道具 举报

您需要登录后才可以回帖

本版积分规则

关注我们
好程序员
千锋好程序员

北京校区(总部):北京市海淀区宝盛北里西区28号中关村智诚科创大厦

深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷B座A区605-619

杭州龙驰智慧谷校区:浙江省杭州市下沙经济技术开发区元成路199号龙驰智慧谷B座7层

郑州校区:郑州市二七区航海中路60号海为科技园C区10层、12层

Copyright 2007-2019 北京千锋互联科技有限公司 .All Right

京ICP备12003911号-5 京公安网11010802011455号

请您保持通讯畅通1对1咨询马上开启