scala 递归函数

Posted chong-zuo3322

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scala 递归函数相关的知识,希望对你有一定的参考价值。

函数的定义为:

def function_name (parameter_list) : return_type = { function_body }

其中,return_type可以省略,使用推断类型,但是recursive method(递归函数)就必须带return_type;函数使用return语句返回值时,必须带return_type;
比如:

def max(x : Int, y : Int)  = {
    if (x > y)
      x
    else
      max(x, y - 1) // ERROR,Recursive method max needs result type 
  }

正确:

def max(x : Int, y : Int):Int = {
    if (x > y)
      x
    else
      max(x, y - 1) 
  }

 

以上是关于scala 递归函数的主要内容,如果未能解决你的问题,请参考以下文章

从示例逐渐理解Scala尾递归

scala中的特别函数递归地连接两个列表:不使用“concat”

在scala中使用递归函数解析复杂地图

scala-尾递归

[Notes] 简单的 Scala 尾递归函数

Scala尾递归优化