Neuzuordnung zu einem Val in Scala

Suraj P 21 Juni 2023
  1. Neuzuordnung zu einem val in Scala
  2. Abschluss
Neuzuordnung zu einem Val in Scala

Dieser Artikel behandelt die Neuzuweisung zu einem val in Scala.

Neuzuordnung zu einem val in Scala

In Scala ist eine Neuzuweisung zu val nicht erlaubt, aber wir können ein neues val erstellen und ihm den Wert zuweisen.

Beispielcode 1:

object MyClass {

    def main(args: Array[String])
    {
         val x = 10;
         x = x+10

         println(x)
    }
}

Ausgang:

error: reassignment to val

Wir können einen Fehler sehen, wenn wir die Werte einem val neu zuweisen.

Als Workaround können wir das Ergebnis einem neuen val zuweisen und verwenden.

Beispielcode 2:

object MyClass {

    def main(args: Array[String])
    {
         val x = 10;
         val y = x+10

         println(y)
    }
}

Ausgang:

20

Scala bietet uns drei Möglichkeiten, Dinge zu definieren.

  1. Mit val wird ein fester Wert definiert, der nicht verändert werden kann.

    Beispielcode: Hier kann der Wert x nicht geändert werden.

    object MyClass {
    
    	def main(args: Array[String])
    	{
    		 val x = 10;
    
    	}
    }
    
  2. var wird verwendet, um eine Variable zu definieren, einen Wert, der geändert werden kann.

    object MyClass {
    
    	def main(args: Array[String])
    	{
    		 var x = 10;
    		 x = x+10;
    		 println(x)
    
    		 x = x*1000
    		 println(x)
    
    	}
    }
    

    Ausgang:

    20
    20000
    
  3. Mit def wird eine Methode definiert

    Beispielcode:

    object MyClass {
    
      def student = 2*3*4*5*6
    
    	def main(args: Array[String])
    	{
    		 println(student)
    	}
    }
    

    Ausgang:

    720
    

Abschluss

In diesem Artikel haben wir gelernt, dass wir einem val keine Werte neu zuweisen können, da es die Variable als festen Wert deklariert. Wenn wir also eine Variable verwenden möchten, die sich ständig ändert, können wir var verwenden.

Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub