Scala 函数:灵活高效的代码块封装
在 Scala 中,函数是代码复用和逻辑封装的核心单位,其灵活性远超 Java 中的方法 —— 不仅可以独立定义,还能像变量一样赋值、传递,甚至作为参数或返回值。本文将深入解析 Scala 函数的定义、参数特性及使用技巧。
函数与方法的关系
Scala 中 “函数”(Function)和 “方法”(Method)概念相近,但存在细微区别:
- 方法:定义在类、对象或特质中的函数,依赖于宿主结构。
- 函数:可独立存在的代码块,本质是
FunctionN特质的实例(如Function2对应两个参数的函数)。
日常使用中,两者常被混用,因为 Scala 会自动在方法和函数间转换(通过 “eta 展开”:方法名 _ 将方法转为函数)。
函数的基本定义
Scala 函数通过 def 关键字声明,语法灵活,支持多种返回值形式。
基本语法
1 | def 函数名([参数名: 参数类型], ...)[[: 返回值类型] =] { |
三种返回值形式
1. 显式指定返回值类型
通过 : 返回值类型 = 明确声明返回值类型,可使用 return 关键字。