当前位置: 首页 > article >正文

4.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 = 1

注意从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
    }
}

http://www.kler.cn/a/522185.html

相关文章:

  • 生成模型:扩散模型(DDPM, DDIM, 条件生成)
  • nvm安装详细教程(安装nvm、node、npm、cnpm、yarn及环境变量配置)
  • 研发的立足之本到底是啥?
  • Nginx前端后端共用一个域名如何配置
  • 独立成分分析 (ICA):用于信号分离或降维
  • 为AI聊天工具添加一个知识系统 之78 详细设计之19 正则表达式 之6
  • YOLO目标检测4
  • C#面试常考随笔6:ArrayList和 List的主要区别?
  • deepseek R1的确不错,特别是深度思考模式
  • excel如何查找一个表的数据在另外一个表是否存在
  • clean code阅读笔记——如何命名?
  • Nacos深度解析:构建高效微服务架构的利器
  • Python3 【高阶函数】项目实战:5 个学习案例
  • linux网络 | TCP可靠性策略之连接管理、滑动窗口、拥塞控制
  • CSS Fonts(字体)
  • Yolo11 + OCR 营业执照识别+信息抽取(预期后续改用其他ocr更简单,推理预计使用onnxruntim加速,分c++和python两种方式部署)
  • C#,入门教程(04)——Visual Studio 2022 数据编程实例:随机数与组合
  • Python3 OS模块中的文件/目录方法说明十三
  • 通过Redis命令建立锁机制
  • 字符设备驱动模版-中断
  • 5.1.4 软件工具+开发环境
  • 【Docker】Docker入门了解
  • 本地大模型编程实战(04)给文本自动打标签
  • 【Spring】Spring概述
  • 寒假1.26
  • 【深度学习】常见模型-Transformer模型