gpt4 book ai didi

Scala 对象作为字段

转载 作者:行者123 更新时间:2023-12-01 07:05:54 25 4
gpt4 key购买 nike

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




10 年前关闭。




Possible Duplicate:
val and object inside a scala class?



是否有实质性区别:
class Foo {
object timestamp extends java.util.Date
}


class Foo {
val timestamp = new java.util.Date {}
}

拥有一个带有对象字段的类到底意味着什么?它们是做什么用的?是否存在必须使用对象的情况?

谢谢...

最佳答案

使用 object如果您需要向该字段添加行为,则可能更可取。例如:

class Foo {
object startDate extends java.util.Date {
def isBusinessDay: Boolean = // ...
}
}

class Bar {
lazy val startDate = new java.util.Date {
def isBusinessDay: Boolean = // ...
}
}
foo.startDate的类型是 foo.startDate.type ,并调用 foo.startDate.isBusinessDay方法将被静态解析。
bar.startDate的类型另一方面,是结构类型 java.util.Date{ def isBusinessDay: Boolean } .调用 bar.startDate.isBusinessDay因此将使用反射并产生不必要的运行时开销。

关于Scala 对象作为字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4392286/

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