Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala:使用外部参数初始化对象_Scala_Object_Constructor - Fatal编程技术网

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对象是如何创建的有些误解。请阅读我共享的重复问题链接。