Scala教程之:scala的参数
2023-09-11 14:19:26 时间
scala的参数有两大特点:
- 默认参数值
- 命名参数
默认参数值
在Scala中,可以给参数提供默认值,这样在调用的时候可以忽略这些具有默认值的参数。
def log(message: String, level: String = "INFO") = println(s"$level: $message")
log("System starting") // prints INFO: System starting
log("User not found", "WARNING") // prints WARNING: User not found
注意从Java代码中调用时,Scala中的默认参数则是必填的(非可选),如:
// Point.scala
class Point(val x: Double = 0, val y: Double = 0)
// Main.java
public class Main {
public static void main(String[] args) {
Point point = new Point(1); // does not compile
}
}
命名参数
当调用方法时,实际参数可以通过其对应的形式参数的名称来标记:
def printName(first: String, last: String): Unit = {
println(first + " " + last)
}
printName("John", "Smith") // Prints "John Smith"
printName(first = "John", last = "Smith") // Prints "John Smith"
printName(last = "Smith", first = "John") // Prints "John Smith"
注意使用命名参数时,顺序是可以重新排列的。 但是,如果某些参数被命名了,而其他参数没有,则未命名的参数要按照其方法签名中的参数顺序放在前面。
printName(last = "Smith", "john") // error: positional after named argument
更多教程请参考 flydean的博客
相关文章
- Scala 函数式编程
- 160 Scala 映射
- 155 Scala开发工具安装
- 176 Scala 项目案例(项目实现)
- 171 Scala 高阶函数
- 《Spark大数据分析:核心概念、技术及实践》一 2.2 Scala基础
- Scala和Java的27个主要区别
- Windows上Scala安装教程
- (数据科学学习手札48)Scala中的函数式编程
- IDEA界面创建Scala的Maven项目
- Scala教程之:静态类型
- Scala教程之:函数式的Scala
- Scala教程之:面向对象的scala
- scala教程之:可见性规则
- Scala教程之:可变和不变集合
- Scala教程之:Enumeration
- Scala函数式编程基础
- 【历史上的今天】9 月 5 日:Scala 之父出生;华为发布麒麟 980 芯片;计算机存储器的革命