Assignment Help logo
Chat en direct

Loading...

Score %0 (0 correct0 incorrect20 unanswered)

Q1. Le bytecode Scala peut s'exécuter sur la machine virtuelle Java. Quelle est la différence fondamentale entre object.clone() en Java et object.copy() en Scala?

  • L'un est un objet Java, l'autre est un objet Scala.
  • clone() copiera les structures de classe mais pas les données, tandis que copy() copiera également les données dans de nouveaux objets.
  • Il n'y a aucune différence.
  • copy() vous permet de modifier les valeurs pendant le processus de copie ; clone() ne le permet pas.

Q2. Quelle valeur retourne ce code?

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

Q3. Quelle est une façon d'éviter les détails de parallélisation de bas niveau?

  • monades
  • fonctions littérales
  • fonctions partiellement appliquées
  • collections parallèles

Q4. Que devez-vous utiliser dans ScalaTest pour voir un diagramme détaillé des messages d'erreur lorsqu'un test échoue?

  • ArgumentExceptions
  • AssertionException
  • DiagrammedAssertions
  • JUnit

Q5. Quel type de données utiliseriez-vous pour stocker une collection immuable d'objets contenant un nombre fixe de types variés?

  • Array
  • ImmutableCollection
  • List
  • Tuple

Q6. Après avoir défini une fonction dans l'interpréteur, Scala renvoie ce qui suit. Que signifie ()?

myfnc: ()Unit
  • La fonction n'a aucun effet secondaire.
  • La fonction ne prend aucun paramètre.
  • La fonction ne renvoie aucune valeur.
  • Renvoyer des types unitaires à la fonction est une fermeture.

Q7. Quel type de nombre est 1234.e5?

  • hexadécimal
  • court
  • à virgule flottante
  • long

Q8. Lorsque vous convertissez une map en une liste en utilisant la méthode toList de la map, le résultat sera de quel type?

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

Q9. Quel type d'objet ce code crée-t-il?

val x = (1234, "Active")
  • Liste
  • Map
  • Tuple
  • Tableau

Q10. Quel est un sous-classe de toutes les classes?

  • AnyVal
  • AnyRef
  • Méthode
  • Null

Null dans la bibliothèque standard Scala. La question est un peu incorrecte - Null est un sous-type de chaque type sauf ceux des classes de valeur.

Q11. Pour la construction for-yield, la portée est-elle séparée entre le corps du for et le corps du yield?

  • Oui et non. C'est différent en fonction de la construction for et de ce qu'elle fait.
  • Oui, car la section for n'expose pas sa portée.
  • Non, car for-yield partage la même portée, même s'ils sont à l'intérieur de crochets différents.
  • Oui, car ils sont à l'intérieur de crochets différents.

Exemple : le corps du yield a accès à la variable e du corps du for.

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

Q12. Quelle est une façon de mettre en œuvre la correspondance de motifs sur des méthodes?

  • en utilisant regex
  • en utilisant des monades
  • en utilisant la correspondance de chaînes
  • en utilisant des classes de cas

Remarque : question ambiguë, il n'est pas clair quel type de correspondance de motifs est mentionné ici.

Q13. Quelle est la valeur de z après l'exécution de ce code?

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. Quel terme est utilisé pour spécifier une précondition?

  • assert
  • require
  • precondition
  • mustHave

Q15. Quel type Scala peut générer une exception ou une valeur calculée avec succès, et est couramment utilisé pour capturer et propager des erreurs?

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

scala.util.Try

Q16. Quel est le type de données de y après l'exécution de ce code?

val y = (math floor 3.1415 * 2)
  • court
  • double
  • int
  • bigInt

Q17. Lors de l'utilisation de la correspondance de motifs, quel caractère correspond à n'importe quel objet?

  • %
  • _
  • ^
  • -

Correspondance de motifs

Q18. Vous avez créé un tableau en utilisant val. Pouvez-vous changer la valeur de n'importe quel élément du tableau, et pourquoi ou pourquoi pas?

  • Oui, la référence au tableau est immuable, donc l'emplacement vers lequel le tableau pointe est immuable. Les valeurs dans le tableau sont mutables.
  • Le 0e élément est immuable et ne peut pas être modifié. Tous les autres éléments peuvent être modifiés.
  • Oui, val ne rend pas les tableaux immuables.
  • Non, val rend le tableau et les valeurs du tableau immuables.

Explication :

val a1

 = Array(1, 2, 3)
a1{1} = 3 // OK
a1 = Array(1, 3, 3) // erreur: réassignation à val

Q19. Quelle est la sortie de cette fonction?

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. Comment appelle-t-on les objets avec un état immuable?

  • singletons
  • objets stationnaires
  • objets fonctionnels
  • objets fixes

Remarque : les singletons peuvent avoir un état mutable