gpt4 book ai didi

class - Scala:伴随对象的目的

转载 作者:行者123 更新时间:2023-12-03 23:34:17 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




10年前关闭。




Possible Duplicate:
What is the rationale behind having companion objects in Scala?



感谢您对我之前的帖子( Scala: companion objects and "new" keyword)的所有回复。我想问你 Scala 中伴生对象的一般用途是什么?
首先,我们不能以类本身的构造函数/方法定义的形式包含所有方法,例如 apply 吗?
此外,伴随 bool 对象的意义何在,因为它甚至没有定义应用方法?

再次提前感谢您的所有回复。

最佳答案

需要伴随对象:

  • 声明与同伴类相关的方法,否则这些方法将是静态的(与 Java 不同,您不能在 Scala 中的类本身中声明静态方法)
  • 声明unapplyunapplySeq为模式匹配定义自定义提取器的方法(见 here)
  • 声明apply方法,通常用作创建特定类的对象的工厂方法(但不一定是)
  • 伴生对象可以访问其伴生特征/类的私有(private)字段和方法 - 对于在该特定特征/类上创建静态操作很有用
  • 它们对 implicit resolution 很重要-- 在查找某个类型的隐式值时,检查该类型的伴生对象是否存在对应的implicit定义;请参阅 Scala specification 中的隐式解析的确切规则或 this blog post 中的简短摘要
  • Boolean Scala 标准库中的对象提供了方法 boxunbox用于在原始 bool 值及其包装的对象表示之间进行转换。它还(当前)用作 @specialized 的参数。注释,以表示该类需要专门针对哪些原始类型。

    关于class - Scala:伴随对象的目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9806029/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com