Scala 函数基础入门

Posted yuanweiblogger

tags:

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

函数的定义与调用

Scala中定义函数时,需要定义函数的函数名、参数、函数体。

我们的第一个函数如下所示:

  

  def sayHello(name: String, age: Int) =

 

      if (age > 18) printf("hi %s, you are a big boy\\n", name); age

 

      else printf("hi %s, you are a little boy\\n", name); age

 

  

 

    sayHello("leo", 30)

 

 技术图片

Scala要求必须给出所有参数的类型,但是不一定给出函数返回值的类型,只要右侧的 函数体中不包含递归的语句,Scala就可以自己根据右侧的表达式推断出返回类型。

 

 

  在代码块中定义包含多行语句的函数体

单行的函数:def sayHello(name: String) = print("Hello, " + name)

如果函数体中有多行代码,则可以使用代码块的方式包裹多行代码,代码块中最后一行的返回值就是整个函数的返回值。与Java中不同,不是使用return返回值的。

 

比如如下的函数,实现累加的功能:

def sum(n: Int) =

  var sum = 0;

  for(i <- 1 to n) sum += i

  sum

 

递归函数与返回类型

如果在函数体内递归调用函数自身,则必须手动给出函数的返回类型。

 

例如,实现经典的斐波那契数列:

9 + 8; 8 + 7 + 7 + 6; 7 + 6 + 6 + 5 + 6 + 5 + 5 + 4; ....

 

def fab(n: Int): Int =

  if(n <= 1) 1

  else fab(n - 1) + fab(n - 2)

 

以上是关于Scala 函数基础入门的主要内容,如果未能解决你的问题,请参考以下文章

Scala的安装,入门,学习,基础

scala快速入门之基础篇-循环语法

Scala入门学习之包类与对象

炼数成金-Scala语言入门

Scala语言入门

大数据入门第二十天——scala入门scala基础