scala基础教程
Scala介绍
Scala环境搭建
Scala基础语法
函数式编程基础
Scala集合操作
Scala面向对象编程
Scala模式匹配
Scala错误处理
Scala并发编程
Scala与数据库交互
Scala与Web开发
Scala测试
高级特性
Scala工具和库
最佳实践和代码风格
Scala项目实战
-
+
首页
函数式编程基础
### 4.1 函数定义和调用 在Scala中,函数是一种一等公民,意味着它们可以像任何其他值一样被传递和操作。函数定义使用`def`关键字。 #### 定义函数 ```scala def functionName(parameters: ParameterType*): ReturnType = { // 函数体 } // 无参数,返回Unit类型的函数 def printHello(): Unit = println("Hello") // 带参数的函数 def add(a: Int, b: Int): Int = a + b ``` #### 调用函数 ```scala printHello() // 输出: Hello val sum = add(3, 4) // sum = 7 ``` ### 4.2 高阶函数 高阶函数是至少满足以下条件之一的函数: - 接受一个或多个函数作为参数 - 返回一个函数作为结果 #### 接受函数作为参数 ```scala def applyFunction[T](f: T => T, value: T): T = f(value) val result = applyFunction[Int](x => x * 2, 5) // result = 10 ``` #### 返回函数作为结果 ```scala def greaterThan(n: Int): Int => Boolean = x => x > n val gt10 = greaterThan(10) val test = gt10(11) // test = true ``` ### 4.3 匿名函数和闭包 #### 匿名函数 匿名函数是一种没有名称的函数,通常用于简短的、一次性的函数实现。 ```scala val addOne = (x: Int) => x + 1 val result = addOne(5) // result = 6 ``` #### 闭包 闭包是一个函数,它记住了其外部作用域中的变量,即使外部函数已经返回。 ```scala def makeAdder(i: Int): Int => Int = { (x: Int) => i + x } val add5 = makeAdder(5) val result = add5(10) // result = 15 ``` 在这个例子中,`makeAdder`函数返回了一个闭包,这个闭包记住了`makeAdder`函数的参数`i`。即使`makeAdder`函数执行完毕,闭包仍然可以访问`i`的值。 Scala的函数式编程特性非常强大,它们允许你以声明性和无副作用的方式编写代码,这有助于提高代码的可读性和可维护性。
wwbang
2025年1月2日 14:14
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码