前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scala教程之:scala的参数

Scala教程之:scala的参数

作者头像
程序那些事
发布2020-07-07 16:19:29
6150
发布2020-07-07 16:19:29
举报
文章被收录于专栏:程序那些事

scala的参数有两大特点:

  • 默认参数值
  • 命名参数

默认参数值

在Scala中,可以给参数提供默认值,这样在调用的时候可以忽略这些具有默认值的参数。

代码语言:javascript
复制
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中的默认参数则是必填的(非可选),如:

代码语言:javascript
复制
// Point.scala
class Point(val x: Double = 0, val y: Double = 0)
代码语言:javascript
复制
// Main.java
public class Main {
    public static void main(String[] args) {
        Point point = new Point(1);  // does not compile
    }
}

命名参数

当调用方法时,实际参数可以通过其对应的形式参数的名称来标记:

代码语言:javascript
复制
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"

注意使用命名参数时,顺序是可以重新排列的。但是,如果某些参数被命名了,而其他参数没有,则未命名的参数要按照其方法签名中的参数顺序放在前面。

代码语言:javascript
复制
printName(last = "Smith", "john") // error: positional after named argument

Scala

更多教程请参考 flydean的博客

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序那些事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 默认参数值
  • 命名参数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档