Scala—函数的基本使用

71 阅读2分钟

一、函数

Scala既是一个面向对象编程的语言,也是一个面向函数编程的语言。Scala中的函数和方法的语法是相同的,只是意义不同。Java中并没有函数和方法的区分,因为Java是面向对象编程的语言。

二、定义函数

  • 格式如下:

Snipaste_2025-10-13_15-17-20.png

要点:

1. 特别注意要写 =

2. 返回值类型要指定

三、函数调用

格式:返回值=函数(参数列表)

  • 代码示例:

两数求和

def getSam(x:Int,y:Int):Int = {
  x + y
}
  val s = getSam(1,100)
  printf(s)

四、函数规则

1.只有一行可以省略{}。当Scala的函数体中只有一行表达式时可以省略{},输出结果依然不变。

2.最后一条语句为函数的返回值。当函数体中有多个语句存在时,返回最后一条语句的值。

3.函数的返回类型可以省略。它会自动推断。

4.函数没有形参,在定义函数时可以省略(),那么在调用函数时也不需要添加()

  • 代码示例:

返回值

def getMax(x: Int, y: Int): Int = {  
  if (x > y)  
    x  
  else  
    y

}

五、函数返回多个值

如何改写上述代码?

将println --> 改写

如下:

// 定义一个函数
// 功能:求三个数的最大值和最小值
// 注意:函数需要返回多个值。

def max(x:Int, y:Int, z:Int): (Int, Int) = {
  var maxValue = if(x>y) x else y
  maxValue = if(maxValue>z) maxValue else z

  var minValue = if(x>y) y else x
  minValue = if(minValue>z) z else minValue

  (minValue, maxValue) // 是一个整体
}

def main(arg: Array[String]): Unit = {
  val rst = max(1000,200,100)
  // 访问这个整体中的某个值:  ._数字
  println(s"最小值是:${rst._1}, 最大值是:${rst._2}")
}

运行结果为:

最小值是:100, 最大值是:1000

六、元组

概念:

元组表示不同类型值的集合,即元组可以用于存放不同类型的元素,例如可以存放整型、字符串、浮点型、自定义类型等等。Scala的元组类型可以使方法同时返回多个值,省略了中间部分的解析和集合的遍历。

定义元组:
  • 第一种表示方式为:(元素1,元素2,…元素N)

  • 第二种表示方式为:new TupleN(元素1,元素2,…元素N)。N最大为22

访问元组:

元组通过Tuple_INDEX的方式访问元组中的元素,Tuple表示元组,INDEX表示索引。

代码示例:

// 元组:容器,可以装入不同的数据类型的数据
// 1. 定义一个元组。使用()把数据包起来。
val t = (1, "1", 1.2, false, 0 )

// 2. 取出元素,通过  ._数字序号 来访问
// 取出 1.2
println(t._3)
// 取出 false
println(t._4)

运行结果为:

1.2

false