Scala:使用外部参数初始化对象
假设我有一个变量Scala:使用外部参数初始化对象,scala,object,constructor,Scala,Object,Constructor,假设我有一个变量x,它在某个时刻从用户那里接收它的值。完成后,我需要设置一个需要x值的对象 天真地,我想写: Object MyCoolObject(num:Double) { //code } 然后在代码的某个地方: val MCO = MyCoolObject(x) 但这在Scala是不可能的。那我该怎么做呢?类似这样的事情: class MyCoolObject(num:Double) { } object MyCoolObject{ def apply(x:Do
x
,它在某个时刻从用户那里接收它的值。完成后,我需要设置一个需要x
值的对象
天真地,我想写:
Object MyCoolObject(num:Double) {
//code
}
然后在代码的某个地方:
val MCO = MyCoolObject(x)
但这在Scala是不可能的。那我该怎么做呢?类似这样的事情:
class MyCoolObject(num:Double) {
}
object MyCoolObject{
def apply(x:Double) = new MyCoolObject(x)
}
val x : Double = 56.1
val MCO = MyCoolObject(x)
你可以使用这篇文章。
这里已经讨论了这一点: 您还可以使用
案例类
:
case class MyCoolObject(num: Double)
{
//code
}
val n = 10 // external data
val myCoolObject = MyCoolObject(n)
我认为你们需要深入研究伴生对象并应用这个方法。看起来这里的每个人都对这个问题感到困惑——也许你们应该后退一点,在更高的层次上解释一下你们试图实现的目标,并提供一些额外的上下文?否则,我认为到目前为止您提出的确切问题的答案是,无法参数化
对象<代码>val MCO=条形(x)
?MCO
会持有物品还是持有课程?只需根据您的需要修改答案,并添加适当的代码即可。MCO将保留该类的新实例。如果MCO
仍然是一个对象而不是一个类的实例,有什么方法可以做到这一点吗?好的,我会说是的。不知道你为什么需要这个。但是我会这样做:objectmycoloobject{var myValue:Double=0 def apply(x:Double)={myValue=x this}}您将把您的值存储在伴随对象中。尝试使用println(MCO.myValue)。谢谢,但不是我想要的-我需要将它作为对象而不是类保存。此外,MongoDB实现这一点的方法与我这里的不同。它实际上是关于传递一个参数,比如在您的示例中,您对Scala对象是如何创建的有些误解。请阅读我共享的重复问题链接。