Scala 变量

  • 变量

    变量不过是用于存储值的保留内存位置。这意味着在创建变量时,将在内存中保留一些空间。根据变量的数据类型,编译器分配内存并确定可以在保留内存中存储的内容。因此,通过为变量分配不同的数据类型,可以在这些变量中存储整数,小数或字符。
  • 变量声明

    Scala具有用于声明变量的不同语法。它们可以定义为值,即常量或变量。在这里,myVar使用关键字var声明。它是一个可以更改值的变量,称为可变变量。以下是使用var关键字定义变量的语法-
    
    var myVar : String = "Foo"
    
    在这里,myVal是使用关键字val声明的。这意味着它是一个不能更改的变量,称为不可变变量。以下是使用val关键字定义变量的语法-
    
    val myVal : String = "Foo"
    
  • 可变数据类型

    变量的类型在变量名称之后和等号之前指定。您可以通过提及其数据类型来定义任何类型的Scala变量,如下所示:
    
    val or val VariableName : DataType = [Initial Value]
    
    如果您没有将任何初始值赋给变量,则它的有效性如下:
    
    var myVar :Int;
    val myVal :String;
    
  • 变量类型推断

    当您为变量分配初始值时,Scala编译器可以根据分配给它的值找出变量的类型。这称为变量类型推断。因此,您可以这样编写这些变量声明-
    
    var myVar = 10;
    val myVal = "Hello, Scala!";
    
    在这里,默认情况下,myVar将为Int类型,而myVal将成为String类型变量。
  • 多个分配

    Scala支持多种分配。如果代码块或方法返回一个元组(元组 -持有不同类型的对象的集合),则可以将元组分配给val变量。[ 注意 -我们将在后续章节中学习元组。]
    
    val (myVar1: Int, myVar2: String) = Pair(40, "Foo")
    
    类型推断是正确的
    
    val (myVar1, myVar2) = Pair(40, "Foo")
    
  • 范例程序

    以下是一个示例程序,解释了Scala中变量声明的过程。该程序声明了四个变量-使用类型声明定义了两个变量,其余两个没有类型声明。
    
    object Demo {
       def main(args: Array[String]):Unit= {
          var myVar :Int = 10;
          val myVal :String = "Hello Scala with datatype declaration.";
          var myVar1 = 20;
          val myVal1 = "Hello Scala new without datatype declaration.";
          
          println(myVar); println(myVal); println(myVar1); 
          println(myVal1);
       }
    }
    
    尝试一下
    编译并执行上述代码后,将产生以下结果-
    
    10
    Hello Scala with datatype declaration.
    20
    Hello Scala without datatype declaration.
    
  • 可变作用域

    Scala中的变量可以根据使用位置的不同而具有三个不同的作用域。它们可以作为字段(属性),方法参数和局部变量存在。以下是每种示波器的详细信息。
    字段
    字段是属于对象的变量。可以从对象的每个方法内部访问字段。字段也可以在对象外部访问,具体取决于声明该字段使用哪些访问修饰符。对象字段可以是可变类型也可以是不可变类型,并且可以使用var或val进行定义。
    方法参数
    方法参数是变量,用于在调用方法时在方法内部传递值。方法参数只能从方法内部访问,但是,如果您从方法外部引用了对象,则可以从外部访问传入的对象。方法参数始终是不可变的,由val关键字定义。
    局部变量
    局部变量是在方法内部声明的变量。局部变量只能从方法内部访问,但是如果从方法中返回它们,则创建的对象可能会逸出方法。局部变量可以是可变类型,也可以是不可变类型,可以使用var或val进行定义。