在scala中访问对象范围之外的变量值

时间:2018-01-25 12:23:30

标签: scala

是scala的新手并且有一个基本问题。如何从scala中的对象范围外访问变量?需要有关此问题的帮助。 当我尝试打印变量的值时,它给出了以下错误: 错误:未找到:值x

下面是代码块。我需要一个用户i / p,并且需要访问scala中方法范围之外的用户。请帮忙。

def main(args: Array[String]) {
val x:Int = args(0).toInt
}

println("Input : " + main _)

val a = main(x)

println(a)

1 个答案:

答案 0 :(得分:2)

在scala中,您无法访问范围之外的变量。如果您在其他范围内需要它们:

  • 您可以定义一个全局变量并在其他地方访问它。 (不推荐使用,因为这不是scala中函数式语言的最佳实践。)
  • 您可以创建一个创建所需输出的函数,并在需要时调用该函数。

在您的示例中,您尝试使用参数main调用x,但在该范围内未定义。此外,main不返回任何内容(返回Unit,类似于Java中的void),因此即使您可以访问{println函数,也不会显示任何内容{1}}。