Score %0 (0 correct0 incorrect20 unanswered)

Q1. Scala-Bytecode kann auf Java-VM ausgeführt werden. Was ist der grundlegende Unterschied zwischen Java object.clone() und Scala object.copy()?

  • Eins ist ein Java-Objekt, das andere ist ein Scala-Objekt.
  • clone() kopiert Klassenstrukturen, aber nicht die Daten, während copy() auch Daten in neue Objekte kopiert.
  • Es gibt keinen Unterschied.
  • copy() ermöglicht es Ihnen, Werte während des Kopiervorgangs zu ändern; clone() nicht.

Q2. Welchen Wert gibt dieser Code zurück?

val m1 = Map("a"->1,"b"->2,"c"->3)
m1("a")
  • a
  • 2
  • b
  • 1

Q3. Wie kann man Low-Level-Parallelisierungsdetails vermeiden?

  • Monaden
  • Literal-Funktionen
  • Teilweise angewandte Funktionen
  • Parallele Sammlungen

Q4. Was verwendet man in ScalaTest, um ein detailliertes Diagramm von Fehlermeldungen zu sehen, wenn ein Test fehlschlägt?

  • ArgumentExceptions
  • AssertionException
  • DiagrammedAssertions
  • JUnit

Q5. Welchen Datentyp würden Sie verwenden, um eine unveränderliche Sammlung von Objekten zu speichern, die eine feste Anzahl von verschiedenen Typen enthalten?

  • Array
  • ImmutableCollection
  • Liste
  • Tuple

Q6. Nachdem Sie eine Funktion im Interpreter definiert haben, gibt Scala Folgendes zurück. Was zeigt () an?

myfnc: ()Unit
  • Die Funktion hat keine Seiteneffekte.
  • Die Funktion hat keine Parameter.
  • Die Funktion gibt keinen Wert zurück.
  • Das Zurückgeben von Unit-Typen an die Funktion ist ein Closure.

Q7. Welche Art von Zahl ist 1234.e5?

  • Hexadezimal
  • Short
  • Gleitkommazahl
  • Lang

Q8. Wenn Sie eine Map in eine Liste mit der toList-Methode der Map konvertieren, welchen Typ hat das Ergebnis?

  • List[(String, String)]
  • List[(Array, Array)]
  • List[(Collection, Collection)]
  • List

Q9. Welchen Objekttyp erstellt dieser Code?

val x = (1234, "Aktiv")
  • Liste
  • Map
  • Tuple
  • Array

Q10. Welches ist eine Unterklasse aller Klassen?

  • AnyVal
  • AnyRef
  • Methode
  • Null

Null in der Scala-Standardbibliothek. Die Frage ist etwas inkorrekt - Null ist ein Subtyp jeder Art außer denen von Wertklassen.

Q11. Ist der Bereich für den for-yield-Konstrukt getrennt zwischen for-Körper und yield-Körper?

  • Ja und nein. Es ist je nach dem for-Konstrukt und dessen Funktion unterschiedlich.
  • Ja, weil der for-Bereich seinen Bereich nicht freigibt.
  • Nein, weil for-yield den gleichen Bereich teilt, obwohl sie sich in verschiedenen geschweiften Klammern befinden.
  • Ja, weil sie sich in unterschiedlichen geschweiften Klammern befinden.

Beispiel: Der yield-Körper hat Zugriff auf die Variable e aus dem for-Körper

val a = Array(1, 2, 3, 4, 5)
for {
     e <- a if e > 2
} yield e

Q12. Was ist eine Möglichkeit, Musterabgleich auf Methoden zu implementieren?

  • Mit Regex
  • Mit Monaden
  • Mit Zeichenkettenabgleich
  • Mit Fallklassen

Hinweis: Mehrdeutige Frage, es ist nicht klar, welche Art von Musterabgleich hier gemeint ist.

Q13. Was ist der Wert von z nach Ausführung dieses Codes?

val y = List('a','b')
val z = y::List('c')
  • List(a,b,c)
  • List(List(a, b), c)
  • List(c,a,b)
  • List(c,List(a,b))

Q14. Welcher Begriff wird verwendet, um eine Vorbedingung anzugeben?

  • assert
  • require
  • precondition
  • mustHave

Q15. Welcher Scala-Typ kann eine Ausnahme oder einen erfolgreich berechneten Wert werfen und wird häufig verwendet, um Fehler abzufangen und weiterzuleiten?

  • scala.util.ExceptionHandling
  • scala.Catch.Throw
  • scala.exception.TryFinally
  • scala.util.Try

scala.util.Try

Q16. Welchen Datentyp hat y, nachdem dieser Code ausgeführt wurde?

val y = (math floor 3.1415 * 2)
  • Short
  • Double
  • Int
  • BigInt

Q17. Bei Verwendung des Musterabgleichs, welches Zeichen passt auf jedes Objekt?

  • %
  • _
  • ^
  • -

Musterabgleich

Q18. Sie haben ein Array mit val erstellt. Können Sie den Wert eines Elements des Arrays ändern - und warum oder warum nicht?

  • Ja, die Referenz auf das Array ist unveränderlich, daher ist der Speicherort, auf den das Array zeigt, unveränderlich. Die Werte im Array sind veränderbar.
  • Das 0-te Element ist unveränderlich und kann nicht geändert werden. Alle anderen Elemente können geändert werden.
  • Ja, val macht Arrays nicht unveränderlich.
  • Nein, val macht das Array und die Werte des Arrays unveränderlich.

Erklärung:

val a1 = Array(1, 2, 3)
a1{1}

 = 3 // OK
a1 = Array(1, 3, 3) // Fehler: Neuweisen an val

Q19. Was ist die Ausgabe dieser Funktion?

def main () {
     var a = 0
     for (a<-1 until 5){println(a)}
  • 1,2,3,4,5
  • 0,1,2,3,4
  • 1,2,3,4
  • 2,3,4,5

Q20. Wie nennt man Objekte mit unveränderlichem Zustand?

  • Singleton
  • Stationäre Objekte
  • Funktionale Objekte
  • Feste Objekte

Hinweis: Singletons können einen veränderlichen Zustand haben.