概述
函数是第一等公民,在Scala中,函数就像普通变量一样,同样也具有函数的类型。
Scala语言支持
1 把函数作为实参传递给另外一个函数
2 把函数作为返回值
3 把函数赋值给变量
3 把函数存储在数据结构里
函数类型
在Scala语言中,函数类型的格式为A=>B,表示一个接受类型A的参数,并且返回类型B的函数
Int => String 是把整型映射为字符串的函数类型
函数的定义
def 函数名(参数名:参数类型) :返回值类型 = {
}

方法体内最后一行为返回值,不需要使用return
package com.bx.helloworld
object HelloWorld {
def main(args: Array[String]): Unit = {
println(add(1, 2))
}
def add(x: Int, y: Int): Int = {
x + y
}
}
当函数没有参数的使用,调用函数可以省略括号
object HelloWorld {
def main(args: Array[String]): Unit = {
print(isTest)
}
def isTest() = true
}
默认参数
子函数定义是,允许指定参数默认值默认值
object HelloWorld {
def main(args: Array[String]): Unit = {
setAge()
}
def setAge(age:Int = 18):Unit={
print(age)
}
}
可变参数
object HelloWorld {
def main(args: Array[String]): Unit = {
print(sum(1,2,3,4,5))
}
def sum(numbers: Int*) = {
var result = 0
for (number <- numbers) {
result += number
}
result
}
}
高阶函数
函数作为形参或返回值的函数,称为高阶函数
匿名函数(Anonymous Function)
匿名函数就是函数常量,也称为函数文字量(Functopn Literal)
在Scala 里 ,匿名函数的定义格式为
(形参列表) =>{函数体}
柯里化
柯里化函数把具有多个参数的函数转换为一条函数链,每个节点丢失单一参数
条件表达式
如果布尔表达式为 true 则执行大括号内的语句块,否则跳过大括号内的语句块,执行大括号之后的语句块。if 语句后可以紧跟 else 语句,else 内的语句块可以在布尔表达式为 false 的时候执行。
if(布尔表达式)
{
// 如果布尔表达式为 true 则执行该语句块
}
网友评论