Suchen Sie den Variablentyp in Scala

Suraj P 21 Juni 2023
  1. Verwenden Sie den Musterabgleich in Scala
  2. Verwenden Sie die getClass-Methode in Scala
  3. Verwenden Sie Manifest in Scala
Suchen Sie den Variablentyp in Scala

In diesem Artikel erfahren Sie, wie Sie den Variablentyp in Scala finden. Sehen wir uns verschiedene Methoden an, um den Typ einer Variablen in Scala zur Laufzeit abzurufen.

Verwenden Sie den Musterabgleich in Scala

Der Variablentyp ist in Scala immer vorhanden und wir können ihn als Parameter übergeben.

Beispiel:

def fun[T](data : T) = data

val x = 10
fun(x)

Im obigen Beispiel können wir sehen, dass T int ist, was der Typ von x ist. Aber um den Typ einer Variablen zur Laufzeit wie int, string, double usw. zu erhalten, können wir den obigen Code ändern.

Beispielcode:

object MyClass {
    def fun[T](data:T)= data match{
        case _:Int => "Int"
        case _:Double => "Double"
        case _:String => "String"
        case _ => "Undefined"

    }
    def main(args: Array[String]) {

     val x = 5.6
     val y = "hero"
     val z = 234

     println(fun(x))
     println(fun(y))
     println(fun(z))


    }
}

Ausgang:

Double
String
Int

Verwenden Sie die getClass-Methode in Scala

Die Methode getClass in Scala wird verwendet, um die Klasse des Scala-Objekts zu erhalten. Wir können diese Methode verwenden, um den Typ einer Variablen zu erhalten.

Beispielcode eins:

object MyClass {

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

    System.out.println(x.getClass)

    val y = "hero"

    System.out.println(y.getClass)

    val z = 34.56

    System.out.println(z.getClass)

    }
}

Ausgang:

int
class java.lang.String
double

Die obige Ausgabe zeigt, dass es java.lang.String ausgibt, wenn es um Strings geht, weil Scala-String nichts anderes als ein wrapper um java.lang.String ist.

Wenn wir also anstelle von java.lang.String einen String mit einer aussagekräftigeren Ausgabe wollen, können wir getSimpleName und die Methode getClass verwenden.

Beispielcode zwei:

object MyClass {

    def main(args: Array[String])
    {

    val y = "hero"

    System.out.println(y.getClass.getSimpleName)


    }
}

Ausgang:

String

Verwenden Sie Manifest in Scala

Manifest ist eine Funktion in Scala; Wenn Sie dies zur Laufzeit verwenden, kann der Compiler die ‘generischen’ Typinformationen erhalten. In Scala können wir Instanzen mit einem Typparameter erstellen, zum Beispiel def fun[T](data:T)= data; hier ist T der Typparameter.

Wenn wir also ein Objekt vom Typ Manifest[T] erstellen, können wir vollständige Informationen über den Typ T erhalten.

Beispielcode:

object MyClass {

def myFunc[T: Manifest](t: T): Manifest[T] = manifest[T]

    def main(args: Array[String])
    {

    val y =123

    println(myFunc(y))


    }
}

Ausgang:

Int

Ein großer Vorteil der Verwendung von Manifest besteht darin, den Typ von nicht primitiven Typen zu finden, z. B. ob eine Variable eine Liste oder eine Sequenz usw. ist.

Beispielcode zwei:

object MyClass {

def myFunc[T: Manifest](t: T): Manifest[T] = manifest[T]

    def main(args: Array[String])
    {

    val y = List(1,2,3,4)

    val z = Seq("apple","mango")

    println(myFunc(y))

    println(myFunc(z))


    }
}

Ausgang:

scala.collection.immutable.List[Int]
scala.collection.immutable.Seq[java.lang.String]
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