Scala中的变量范围
变量声明指定将存储在内存中的变量的名称,并且可以使用此变量名称进一步访问内存。 Scala 变量的作用域有三种类型。
- 字段。
- 方法参数。
- 局部变量。
让我们详细讨论它们中的每一个。
如果我们使用正确的访问修饰符声明它们,我们可以从对象中的每个方法和对象外部访问这些类型的变量。字段可以是mutable或immutable ,它们可以使用'var'或'val'定义它们。
例子:
// Scala program of field
// scope for Scala variable
// class created with field
// variables x and y.
class disp
{
var x = 10.3f
var y = 7f
def windet()
{
println("Value of x : "+x)
}
println("Value of y : "+y);
}
object Example
{
// Main method
def main(args:Array[String])
{
val Example = new disp()
Example.windet()
}
}
输出:
Value of y : 7.0
Value of x : 10.3
上例显示 disp 类是使用字段变量 x 和 y 创建的。这些变量可以在方法内部访问,并通过创建引用从对象调用它。因此下面是获得的输出。
当我们想要在调用方法时传递一个值时,我们会使用这些变量。如果有从方法外部对对象的引用,则可以在方法内部和外部方法访问它们。这些变量总是可变的 使用'val'关键字。
例子:
// Scala program of Method
// scope for Scala variable
// class created with Method
// variables s1 and s2.
class rect
{
def mult(s1: Int, s2: Int)
{
var result = s1 * s2
println("Area is: " + result);
}
}
object Area
{
// Main method
def main(args:Array[String])
{
val su = new rect()
su.mult(5, 10)
}
}
输出:
Area is: 50
上面的示例显示了使用mult method
创建的rect class
,该方法接受两个方法参数变量 s1 和 s2。创建区域对象并通过将值传递给变量 s1 和 s2 来调用 rect 方法。因此,下面是获得的输出。
这些类型的变量在方法内声明并且只能在方法内访问。使用'var'和'val'关键字,这些变量可以是mutable 和 immutable 。
例子:
// Scala program of Method
// scope for Scala variable
// class created with Local
// variables s1 and s2.
class Area
{
def mult()
{
var(s1, s2) = (3, 80);
var s = s1 * s2;
println("Area is: " + s)
}
}
object Test
{
// Main method
def main(args:Array[String])
{
val ex = new Area()
ex.mult()
}
}
输出:
Area is: 240
上面的示例显示类 Area 在方法 mult 内具有局部变量 s1、s2 和 s。这些变量在方法外不可访问。因此获得的输出如下。