Scala 变量的范围

Scala 变量的范围

变量声明指定了存储在内存中的变量名称,并且可以通过这个变量名称进一步访问内存。Scala变量有三种类型的范围。

  • 字段。
  • 方法参数。
  • 本地变量。

让我们来详细讨论一下它们中的每一个。

**字段 **

如果我们用正确的访问修饰语声明了这些变量,我们就可以从对象中的每个方法和对象外部访问这些变量。一个字段可以是可变的或不可变的,他们可以用 ‘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

上面的例子显示,rect类创建了mult方法,接受两个方法参数变量s1和s2。区域对象被创建,rect方法通过传递变量s1和s2的值被调用,因此得到的输出如下。

**本地变量 **

这些类型的变量被声明在一个方法中,并且只能在该方法中访问。使用 ‘var ‘和 ‘val ‘关键字,这些变量可以是可变和不可变的。

例子

// 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,这些变量在方法之外不能访问。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程