• 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

     参数 level 有一个默认值,所有它是可选的。在最后一行,实参"WARNING" 重写了默认的实参 “INFO”. 在java中需要用重载的方式实现的方法,在这里可以通过可选参数的方式实现。但是,如果调用的时候省略了某个参数,那个这个参数后面的参数必须用名字指示出来

    class Point(val x: Double = 0, val y: Double = 0)
    
    val point1 = new Point(y = 1)

    这里我们必须将y的名字指示出来

    注意,在scala中的默认参数,在java中调用时是不能省略的。

    // 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
        }
    }
  • 相关阅读:
    P2420 让我们异或吧(倍增)
    bzoj题目分类
    hash练习们
    bzoj1433[ZJOI2009]假期的宿舍(匈牙利)
    bzoj2427:[HAOI2010]软件安装(Tarjan+tree_dp)
    bzoj2730矿场搭建(Tarjan割点)
    codevs4511信息传递(Tarjan求环)
    进入js
    css层叠样式表
    HTML超文本标记语言
  • 原文地址:https://www.cnblogs.com/zhouwenyang/p/13857717.html
Copyright © 2020-2023  润新知