2

我正在尝试在 Scala 中使用全局变量。在整个程序中都可以访问。

val numMax: Int = 300 

object Foo {.. }
case class Costumer { .. }
case class Client { .. }
object main {
var lst = List[Client]
// I would like to use Client as an object .

}

我收到了这个错误:

错误:在对象列表中缺少方法应用的参数;如果您想将其视为部分应用函数 var lst = List[A],请使用 `_' 遵循此方法

如何处理 Scala 中的全局变量以在主程序中访问。在这种情况下我应该使用类还是案例类?

4

2 回答 2

2

这不是全局变量。相反,你想说的是:

val lst = List(client1, client2)

但是,我不同意其他答案。Scala 不仅仅是一种函数式语言。它既是功能性的(如果你问 Clojure 的粉丝,可能不那么纯粹)和面向对象的。因此,您的 OO 专业知识可以完美转化。

全局变量本身并没有错。担心的是可变性。像我一样val喜欢。var此外,您需要使用object单例,而不是static您可能习惯于 Java 的范例。

于 2013-11-08T22:28:05.973 回答
1

您引用的错误与您尝试创建全局变量无关。您()List[Client].

如果您必须创建一个全局变量,您可以将它放在一个对象中,并使用if 该变量被调用Foo从其他对象引用它。Foo.numMaxnumMax

但是,不鼓励使用全局变量。也许将您需要的数据传递给需要它的函数。那是功能性的方式。

于 2013-11-08T22:15:15.743 回答