Scala教程之:scala的参数

前端之家收集整理的这篇文章主要介绍了Scala教程之:scala的参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


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相关文章