全局变量在斯卡拉

我想在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中的全局变量,以便可以在主程序中访问。 我应该在这种情况下使用类或案例类吗?


这不是全球可变的事情。 相反,你想这样说:

val lst = List(client1, client2)

但是,我对其他答案有些不同意。 Scala不仅仅是一种功能性语言。 它是功能性的(如果你问Clojure的粉丝,可能不会像应该那样纯粹)和面向对象的。 因此,您的OO专业知识可以完美翻译。

全局变量本身没有问题。 令人担忧的是可变性。 身高: valvar和我一样。 此外,您需要使用object来实现单例,而不是您可能习惯于Java的static范例。


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

如果你必须创建一个全局变量,你可以把它放在一个像Foo这样的对象中,如果这个变量被称为numMax则可以使用Foo.numMax从其他对象中引用它。

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

链接地址: http://www.djcxy.com/p/72823.html

上一篇: Global Variable in Scala

下一篇: Scala default parameters and null