全局变量在斯卡拉
我想在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专业知识可以完美翻译。
全局变量本身没有问题。 令人担忧的是可变性。 身高: val
到var
和我一样。 此外,您需要使用object
来实现单例,而不是您可能习惯于Java的static
范例。
您引用的错误与您尝试创建全局变量无关。 您在List[Client]
后面缺少()
。
如果你必须创建一个全局变量,你可以把它放在一个像Foo
这样的对象中,如果这个变量被称为numMax
则可以使用Foo.numMax
从其他对象中引用它。
但是,全球变量不鼓励。 也许将需要的数据传递给需要它的函数。 这是功能性的方式。
链接地址: http://www.djcxy.com/p/72823.html