MCQSS.com propose des questions et réponses gratuites sur Scala couvrant une large gamme de sujets. Notre format interactif vous permet de savoir instantanément si vous avez répondu correctement aux questions. Explorez notre collection de questions à choix multiples et testez vos connaissances sur Scala dès aujourd'hui ! Aucun achat d'adhésion ou inscription n'est requis, vous pouvez utiliser notre site gratuitement. Ne manquez pas l'opportunité d'améliorer vos compétences et de vous préparer aux examens avec MCQSS.com.
A. "&"
B. "@"
C. "$"
D. "_"
A. privé [examplepackage] def foo = {...}
B. package [examplepackage] def foo = {...}
C. def foo = {...} // Accès par défaut
D. package def foo = {...} // package privé
E. [ExemplePackage] private def foo = {...}
A. Liste (1,2,3) :: Liste (5)
B. Liste (1,2,3) + 5
C. Liste (1,2,3): + 5
D. Liste (1,2,3) :: = 5
E. Liste (1,2,3) :: 5
A. Une valeur par défaut, utilisée uniquement si la liste est vide
B. Une liste, à laquelle les résultats sont annexés.
C. «L'accumulateur», qui est la valeur initiale pour «b»
D. «L'accumulateur», qui est la valeur initiale pour `a`
A. Anyref est l'objet racine dans Scala
B. Il n'y a pas de classe de ce type
C. Anyref est dérivé de toutval
D. Tous les types à l'exception des types de valeur descendent de toutréf
A. Un paramètre de type qui est fixé lorsque la classe est sous-type.
B. Un paramètre de type qui peut varier pour les super types.
C. Un paramètre de type qui est fixé pour les super types.
D. Un paramètre de type qui peut varier à la baisse lorsque la classe est sous-type.
A. Oui, le runtime JVM prend en charge l'optimisation de l'appel à queue.
B. Non
C. En partie au niveau du compilateur. Le compilateur essaiera de détendre l'appel récursif dans une boucle.
D. En partie, car la pile est infinie dans Scala.
A. Rien
B. nul
C. Liste()
D. Aucun
A. Liaison aux données
B. Types unificateurs
C. Cours d'étanchéité
D. Curry
A. Les fonctions
B. Paramètres
C. Concepts
D. Construction
A. Par inférence
B. Par valeur
C. De nom
D. Par référence
A. Les classes de cas telles que scellées et ne peuvent pas être étendues
B. Vous pouvez construire des instances de ces classes sans utiliser le nouveau mot-clé
C. La méthode TOSTRING est automatiquement redéfinie
D. La méthode égaux est automatiquement redéfinie
A. L'opération "pli"
B. La somme actuelle tout en itérant dans la liste
C. Le prochain élément de la liste
D. La valeur de retour pour l'expression
A. Lorsque vous appliquez la fonction, vous ne transmettez pas d'arguments pour tous les paramètres définis par la fonction, mais uniquement pour certains d'entre eux, laissant les autres blancs
B. Une fonction qui prend en charge le curry
C. Une fonction partiellement définie.
D. Un type de fonction interne utilisé par le package Scala.Collection.imutable.
A. Liste [n'importe quel]
B. Liste [int]
C. Liste [anyref]
D. Liste [Boolean]
E. Liste [anyval]
A. Classe de base
B. Super-scriptum
C. Super-classe
D. Classe de fonction
A. Il n'y a pas de classe scellée.
B. Une sous-classe d'une classe scellée ne peut hériter n'importe où dans le même package.
C. Une classe scellée ne peut pas être directement héritée, sauf si elle est définie dans le même fichier source.
D. Les instances d'une classe scellée ne peuvent pas être modifiées.
A. ~
B. *
C. !
D. |
A. 22
B. 16
C. 2
D. 20
A. Sous-type, polymorphisme ad hoc et paramétrique
B. Sous-type et paramétrique
C. Aucun d'eux
D. Paramétrique
E. Ad hoc et paramétrique
A. Type de coffre-fort
B. Type d'appel
C. Type Bound
D. Fonction de type
A. Créez automatiquement une liste [t] avec x et y en tant que membres avec T de type «int»
B. un tuple avec Arity 2
C. Affecter 100 à la variable Y
D. Traitez X et Y comme les mêmes références dans le code supplémentaire
E. produire une erreur de compilation
A. Vrai
B. FAUX
A. Une classe simple
B. Un espace-garde
C. Un garde
D. Une fonction
A. (Liste (1,2,3), liste (4,5,6)))
B. Liste (1,2,3,4,5,6)
C. 21
D. Liste (5,7,9)
E. Liste ((1,4), (2,5), (3,6)))
A. Tous les littéraux de chaîne sont une instance de scala.collection.immutable.stringops
B. Une sous-classe de java.lang.string est générée au moment de l'exécution, ajoutant la méthode «longueur» à sa signature.
C. Une conversion implicite convertit le java.lang.string en scala.collection.immutable.stringops, qui prend en charge une méthode de longueur.
D. Tous les littéraux de chaîne peuvent être traités par l'interprète de chaîne Scala.
A. Scala ne prend pas en charge les fonctions d'ordre supérieur
B. Les fonctions d'ordre supérieur sont des fonctions sans paramètres qui se renvoient
C. Les fonctions d'ordre supérieur sont des fonctions qui prennent d'autres fonctions comme paramètres.
D. Les fonctions d'ordre supérieur sont des fonctions qui renvoient les fonctions
A. Un itérateur est un type de collection
B. Scala ne prend pas en charge les itérateurs
C. Un itérateur est un flux d'articles entrants où la progression vers l'élément suivant consomme l'article actuel
D. Un trait d'itérateur est mélangé à tous les types de collection
A. FAUX
B. Vrai
A. Un garde
B. Un arbre
C. Un tableau
D. Un joker
A. Une Matcherror serait lancée.
B. Rien ne se passerait parce que "salut" n'est pas de type "aucun"
C. La déclaration retournerait "Bonjour!"
D. Une nulpointerException serait lancée.
A. Un langage dynamique qui peut être utilisé pour programmer efficacement dans le style orienté objet
B. Un langage avancé orienté objet beaucoup mieux que Java qui fonctionne sur le JVM
C. Une langue Java avancée mise en œuvre par Martin Odersky
D. Un langage fonctionnel d'objet qui prend en charge les constructions de programmation fonctionnelle
E. Un langage de programmation fonctionnelle pure
A. Vrai
B. FAUX
A. Oui, mais seulement pour les traits.
B. Non
C. Oui, mais ce n'est pas un scala idiomatique et donc découragé.
D. Oui, toutes les méthodes et fonctions doivent avoir au moins une instruction de retour.
A. Vrai
B. FAUX
A. Interface
B. Cadre
C. Arguments
D. Plateforme
A. "annuler"
B. "bool"
C. "nul"
D. "obtenir"
A. Un langage fonctionnel
B. Tous ces choix décrivent Scala
C. Un langage orienté objet
D. Une langue qui fonctionne sur la machine virtuelle
A. Un objet mono
B. Un seul argument
C. Un objet singleton
D. Un objet statique
A. Objets
B. Méthodes
C. Booléens
D. Opérations
A. "scalacom"
B. "CSCALA"
C. "scala.comp"
D. "scalac"
A. scala.anyref
B. Vous devez toujours spécifier une super-classe
C. scala.importref
D. Scalac Use.ref
A. Vrai
B. FAUX
A. L'ordre de la correspondance du motif n'est pas pertinent
B. L'ensemble de cas doit être exhaustif
C. La correspondance de motifs ne fonctionne pas avec les classes de cas
D. Les modèles ne fonctionnent pas avec les types structurels
A. public int% Plus (int a)
B. Vous ne pouvez pas définir un opérateur Scala à l'aide du code source Java.
C. public int #plus (int a)
D. private int $ Plus (int a)
E. public int $ Plus (int a)
A. Une liste est une séquence immuable finie
B. Une liste est optimale pour les modèles d'accès à la dernière entrée (LIFO), de type pile
C. La liste est un proxy pour java.util.arraylist
D. Une liste est covariante
A. FAUX
B. Vrai
A. Chaîne
B. N'importe quel
C. Unité
A. Non
B. Oui
A. Il renverra le nul car il correspond à `` n'importe quoi ''
B. Il retournera "Salut!" Parce qu'un «aucun» est un type «d'option»
C. Il ne compile pas
D. Il renverra «n'importe quoi»
A. `() => Unité` n'est pas valide Scala
B. Une fonction pure
C. Une fonction littérale
D. Une définition de type de procédure
A. 8
B. 2
C. 30
D. Rien, il n'y a pas de valeur de retour.
E. 1
A. Une variable qui n'est évaluée qu'une seule fois
B. `Lazy var` n'est pas pris en charge par Scala
C. Une variable immuable
D. Une variable qui, une fois évaluée, ne peut être référencée que par la portée de la création.
A. Seulement si la méthode attend un seul paramètre.
B. Sauf si la fonction prend en charge les paramètres de type covariant.
C. Sauf si la fonction prend en charge les paramètres de type contravariant.
D. Seulement si la méthode attend une fonction partielle.
A. x Eq y
B. x.object == y.object
C. x == y
D. x = y
A. Les dé fi nitions par défaut pour les méthodes "égaux" et "hashcode" ne sont pas fournies
B. Une dé fi nition par défaut pour la méthode "tostring" est fournie et imprime la valeur dans un formulaire source
C. Le "nouveau" mot-clé n'est pas obligatoire pour créer des instances de classes de cas
D. Les fonctions Getter sont automatiquement définies pour les paramètres du constructeur
A. L'option [+ a] est abstraite.
B. Scala.nothing est dérivé de l'option [+ a]
C. L'option [+ a] est destinée à remplacer l'utilisation de NULL.
D. Aucun n'est dérivé de l'option [+ a]
A. Les classes de cas sont livrées avec des méthodes d'application et non appliqués.
B. Les classes de cas ont des sérialiseurs par défaut
C. Les classes de cas sont toujours immuables.
D. Les classes de cas peuvent être utilisées dans les matchs.
A. 2
B. Exception
C. 1
A. i = i + 1
B. i ++
C. II +
D. i + = 1
A. une classe abstraite
B. une classe de béton
C. une classe de cas
D. une interface
E. un trait
A. Kojo
B. Typeafe
C. Venner
D. Fodem
A. Type [unité]
B. Classe [unité]
C. Unité
D. Rien
A. Opération
B. Classe
C. Méthode
D. Environnement
A. 1
B. 2
C. Exception
A. Vrai
B. FAUX
Laquelle des instructions suivantes est fausse sur les fonctions dans Scala?
A. Il est possible de définir Def add (x: int, y: int) = x + y comme def add (x: int) (y: int) = x + y c) le code suivant donne une erreur de compilation
B. Les fonctions qui prennent d'autres fonctions comme des paramètres, ou dont le résultat est une fonction sont des fonctions d'ordre supérieur
C. var userdir = () => {System.getProperty ("user.dir")} println (userdir)
D. Il est possible de nidiquer les définitions de fonction. comme def test = {def bisedtest = {println ("Needtest")} Needtest}
En utilisant le fragment de code ci-dessous, choisissez la déclaration correcte qui explique l'erreur?
Objet Main étend l'application {def mysum [t <: nombre] (as: t *): double = as.foldleft (0d) (_ + _.doubleValue) implicite def intTtoiner (n: int) : Integer = new Integer (n.Toint) var r = Mysum (2, 3)} Lorsque vous conformité produit l'erreur suivante Main.Scala: 4: Erreur: Arguments de type déduit [Int] ne sont pas conformes à la méthode des limites du paramètre de type Mysum [ T <: nombre] var r = mysum (2, 3) ^
A. Class int appartient aux classes de valeur dont les instances ne sont pas représentées comme des objets
B. [T <: nombre] Les limites de type signifie que t doit être un sous-type de numéro
C. Il n'y a pas de conversion implicite des instances d'int à des instances de double
D. Vous importez scala.math.bigint._?
Lequel des combinateurs fonctionnels suivants est faux?
A. ForEach évalue une fonction sur chaque élément de la liste mais ne renvoie rien
B. MAP évalue une fonction sur chaque élément de la liste, renvoyant une liste avec le même nombre d'éléments
C. Trouver des rendements tous les éléments d'une collection qui correspond à une fonction de prédicat
D. Zip agrége le contenu de deux listes en une seule liste de paires
Pour le code ci-dessous, choisissez la meilleure instruction pour décrire cette erreur?
classe A (n: int) {var valeur = n} classe b (n: int) {val value = new A (n)} objet test {def main (args: array [string]) {val x = new B (5) x = new B (6)}} main.scala: 7: Erreur: réaffectation à Val x = new B (6) ^
A. Les objets créés avec VAR sont immuables
B. Je ne peux pas remplacer l'objet créé sur la ligne au-dessus de B (6) par ce nouveau.
C. J'ai besoin de remplacer x = nouveau b (6) par x = b (6)
D. J'ai besoin de remplacer x = nouveau b (6) par x = b.apply (6)
Comment fournissez-vous des constructeurs surchargés à Scala?
A. Utilisez le mot-clé «ce» comme Def This (...
B. Surcharge de la fonction d'application
C. Vous ne pouvez pas surcharger les constructeurs, mais vous pouvez le faire avec des fonctions
D. Les paramètres avec des valeurs par défaut doivent être présentés devant ceux sans valeurs par défaut
Choisissez la bonne description pour les deux expressions, pour les deux expressions comme suivantes? Expression 1 def m1 (i: int) = i + 2 Expression 2 (i: int) => i + 2
A. L'expression 1 est une fonction
B. L'expression 2 est une méthode
C. L'expression 1 est une méthode
D. L'expression 2 ne compile pas
Laquelle des déclarations suivantes est incorrecte sur Stream?
A. Vous pouvez traverser le même flux et itérateur plusieurs fois et obtenir le même résultat à chaque fois
B. Le flux et l'itérateur sont paresseux
C. Dans un flux une fois calculé, une valeur reste calculée et est réutilisée
D. Stream.from (1) crée un flux pour des nombres entiers positifs
Laquelle des instructions de code suivantes est correcte, en utilisant l'objet Scala à l'intérieur de Java?
A. scala.util.list <SomeObjectType> res = scala.collection.javaconverters $ .module $ .seqasjavalistesconverter (variableName) .asjava ();
B. scala.util.list <SomeObjectType> res = scala.collection.javaconverters $ .module $ .seqasjavalistConverter (variableName) .asjava ();
C. java.util.list <SomeObjectType> res = scala.collection.javaconverters $ .module $ .seqasjavalistConverter (variableName) .asjava ();
D. Seq <SomeObjectType> VariAbbleName = ScalaClass.MethodintheScalAclass ();
Lequel des éléments suivants est vrai pour les objets, les traits et les classes?
A. Pour créer un programme, vous devez utiliser la méthode principale en classe
B. Vous pouvez avoir plusieurs instances d'une classe
C. Un objet a exactement une instance, vous ne pouvez pas appeler un nouveau myObject
D. L'objet A étend B avec C. Dans cette définition, l'objet B est la classe et C est un trait
Pour le fragment de code ci-dessous, choisissez l'expression qui montre la sortie correcte?
objet Main étend l'application {val adder = new adder (2) System.out.println (adder.apply (4)) var a = new adder (4) System.out.println (a.ApplyObj ())} class adder (x: int) {var y = 5 def appliquez (y: int) = x + y def appliqueoBj () = x + y}
A. 9 puis 6
B. Compiler l'erreur
C. 6 Alors aucun
D. 6 puis 9
Pour le fragment de code ci-dessous
objet Main étend l'application {def mysum [t <: nombre] (as: t *): double = as.foldleft (0d) (_ + _.doubleValue) implicite def intTtointeger (n: int): Integer = new Integer (n.Toint) var r = mysum (2, 3)}
Lorsque vous êtes conformément, produit l'erreur suivante, choisissez l'instruction correcte qui résout l'erreur lorsque vous supprimez la ligne implicite def intTtoinger (n: int): entier = new Integer (n.Toint) main.scala: 4: erreur: arguments de type inférés [int] ne sont pas conformes à la méthode r = mysum (2, 3) ^
A. def mysum [t>: nombre] (as: t *): double = as.foldleft (0d) (_ + _.DoubleValue)
B. def mysum [t <% nombre] (as: t *): double = as.foldleft (0d) (_ + _.doubleValue)
C. def mysum [t <: double] (comme: t *): double = as.foldleft (0d) (_ + _.DoubleValue)
D. def mysum [t>: double] (comme: t *): double = as.foldleft (0d) (_ + _.DoubleValue)
Pour le fragment de code ci-dessous, choisissez la bonne instruction?
val aa = bb filtre (x => x% 2 == 0)
A. AA sera une nouvelle collection, tandis que BB sera toujours le même qu'avant
B. AA sera une nouvelle collection, tandis que BB créera une nouvelle copie de BB pour l'opération de filtre
C. AA sera une nouvelle collection, tandis que le fonctionnement du filtre créera une nouvelle copie mutable de BB
D. AA sera une nouvelle collection mutable, tandis que BB sera toujours le même qu'avant
Lequel des éléments suivants est faux pour Scala?
A. Scala est un langage pur orienté objet
B. Scala prend en charge les classes génériques
C. Scala prend en charge les fonctions d'ordre supérieur
D. Scala est pur fonctionnel
Choisissez l'instruction qui décrit le mieux la fonction Scala «Appliquer»?
A. Lorsque vous donnez des paramètres directement à un objet, vous passez ces paramètres à la fonction d'application de cet objet
B. La fonction d'application est explicitement définie dans les objets de classe de cas
C. La fonction d'application est un constructeur auxiliaire
D. Lorsque vous construisez un objet avec des paramètres, vous passez des paramètres implicitement à la fonction d'application de cet objet
Pour le fragment de code ci-dessous, choisissez l'expression qui montre la sortie correcte?
objet Main étend l'application {val adder = new adder (2) System.out.println (adder.apply (4))} classe Adder (x: int) {var y = 5 def applique (y : Int) = x + y}
A. 9
B. Compiler l'erreur
C. 6
D. Aucun
Lisez le code suivant et dites quand les fonctions Scala s'exécutent-elles?
A. scala> def illustme () = println ("Ceci est une chaîne") wamedame: () Unit Scala> wamedame Il s'agit d'une chaîne Scala> affiché _ res1: () => unit = <Fonction0>
B. scala> res1 res2: () => unit = <function0> scala> res1 () c'est une chaîne scala> def illustame (s: string) = println ("Ceci est une chaîne") illustré: (s: string) Unité Scala>
C. affiché <console>: 9: Erreur: arguments manquants pour la méthode montrée; Suivez cette méthode avec `_ 'si vous souhaitez le traiter comme une fonction partiellement appliquée.
D. Tout ce qui précède
Choisissez l'instruction qui n'est pas correcte pour le trait Traversable?
A. sa seule opération abstraite est déferach [u] (f: elem => u)
B. Les objets Traversibles peuvent être finis ou infinis
C. Toutes les collections s'étendent Traversibles
D. Les objets traversables ne peuvent pas être infinis
À l'aide du fragment de code suivant, choisissez l'instruction correcte qui résout l'erreur?
classe A (n: int) {var valeur = n} classe b (n: int) {val value = new a (n)} objet test {class a (n: int) {var value = n} classe B (n: int) {val-{val = new a (n)} objet main étend app {val x = new B (5) x.value = 6} lorsque vous conformité produit l'erreur suivante main.scala: 7 : Erreur: réaffectation à val x.value = 6 ^
A. x.value.value = 6
B. x.value = a (6)
C. x.Value = new A (6)
D. x.value.value = new A (6)
L'interpolation de chaîne permet aux utilisateurs de _____ références de variables directement dans les littéraux de chaîne traités?
A. Intégrer
B. Mondial
C. Constant
D. Statique
Quelle est la meilleure façon de «cloner» une classe de cas?
A. Appelez spécialement tous les champs et utilisez le constructeur
B. Appelez spécialement tous les champs et utilisez la fonction d'application
C. Utilisez la méthode de copie
D. Utilisez l'objet Comapnion
Pour le code ci-dessous, choisissez l'instruction correcte qui décrit le code?
Objet A étend B avec c {def f (x: any): any = ??? }
A. Déclare une classe anonyme qui étend à la fois b et c
B. Définit la classe B et créez toutes les méthodes de l'objet B comme des méthodes statiques sur la classe B
C. Si une classe nommée C est explicitement définie, A, A sera un objet compagnon de C
D. Déclare une classe complémentaire A
Scala fournit __ versions de tous ses types de collection. Ces versions ne peuvent pas être modifiées après leur initialisation. Vous devriez les utiliser chaque fois que vous savez qu'une collection ne doit pas être modifiée, afin de ne pas le changer accidentellement plus tard?
A. Immutable
B. initialisation
C. conversion
D. listes
Vous pouvez convertir n'importe quelle collection. à un tableau ou à une liste. Une telle conversion nécessite de copier tous les éléments de la collection et est donc lente pour les grandes collections. Parfois, vous devez le faire, cependant, en raison d'une API existante. De plus, de nombreuses collections n'ont de toute façon que quelques éléments, auquel cas il n'y a qu'une petite pénalité de vitesse?
A. Conversion
B. Listes
C. Arraybuffers
D. Déployer
Si seq est un trait, pourquoi var x = seq (1, 2, 3) légal?
A. SEQ est une implémentation
B. Seq n'est pas un trait c'est un objet
C. Seq n'est pas un trait c'est une collection
D. Vous appelez la méthode d'application sur l'objet
Choisissez l'instruction suivante qui n'est pas correcte pour les collections parallèles?
A. Vous pouvez remplacer une collection non parallèle par une collection parallèle
B. Toute collection peut être convertie en parallèle en appelant la méthode pair dessus
C. Appeler Toseq sur une collection parallèle renverra une collection de série.
D. La hiérarchie des collections parallèles a les mêmes noms pour les traits, mais précédés de pair
Pour le code ci-dessous, choisissez l'instruction correcte qui montre la sortie?
var l1 = scala.collection.mutable.mutableList [String] () Val l2 = list [String] () pour (a <- 1 à 100) {l1 + = a.toString} println (l1 .size); pour (a <- 1 à 100) {l2: + a.tostring} println (l2 .size);
A. 100 le 100
B. 0 alors 100
C. 100 puis 0
D. 0 alors 0
Choisissez l'instruction qui n'est pas correcte en utilisant le code ci-dessous?
(1 à 10) .Par Map println
A. Si vous ajoutez PAR, vous obtenez une collection parallèle et des opérations, elle sera toujours traitée en parallèle.
B. Si vous ajoutez pair, vous obtenez une collection parallèle et des opérations, elle sera toujours traitée en parallèle uniquement si plusieurs threads système sont avaiables
C. Fruit votre liste pour le traitement sur plusieurs threads
D. Comme le pair agit sur une gamme, il fait des éléments dans un parrainage
Quelle est la sortie du code suivant?
objet MatchTest {def matchTest (x: any): any = x match {cas 1 => "un" cas "deux" => 2 cas y: int => "scala.int"} def main (args: array [string]) {println (matchTest (2))}}
A. Compiler l'erreur
B. Erreur d'exécution
C. scala.int
D. 2
Quelle est la sortie du code donné ci-dessous?
def addInt (a: int = 5, b: int = 7): int = a + b imprimer (addInt (3,7), addint (3), addInt (), addInt (b = 5))
A. 10,10,12,10
B. Compiler l'erreur
C. 10, 10, 12, 12
D. 12,12,12,12
Pour le code ci-dessous, choisissez l'instruction correcte qui décrit un problème avec le code?
val l = list [string] () pour (a <- 1 à 100) {l: + a.tostring}
A. L est une liste mutable
B. «L: + A.Tostring» renvoie une nouvelle liste à chaque fois
C. «L: + A.Tostring» donne une compréhension
D. pour (a <- 1 à 100) {l: + a.toString} est équivalent à (1 à 100) .map (_. toString)
Quelle est la sortie du code suivant?
def main (args: array [string]) {val x = {print ("x"); 1} Lazy val y = {print ("y"); 2} def z = {print ("z"); 3} z + y + x + z + y + x}
A. zyxzyx
B. xyzz
C. zyzz
D. xzyz
Comment groupery en utilisant plusieurs colonnes dans les collections Scala?
A. records.groupBy (enregistrer => (enregistre.column1, enregistre.column2, enregistrement.column3))
B. records.setgroup (enregistre => (enregistre.column1, enregistre.column2, enregistrement.column3))
C. enregistre.groupset (enregistrer => (enregistrer.column1, enregistrer.column2, enregistrer.column3))
D. Tout ce qui précède
Choisissez la sortie correcte en utilisant le fragment de code ci-dessous?
listofints.sliding (2) .tolist
A. Liste (1, 2), liste (2, 3)
B. Liste (1), liste (2), liste (3)
C. Liste (liste (1), liste (2), liste (3))
D. Liste (liste (1, 2), liste (2, 3))
Choisissez l'instruction qui n'est pas correcte pour mutable de Scala.map?
A. mutable.map est un itérable de Tuple2
B. mutable.map a une méthode de mise à jour pour définir les clés
C. mutable.map a une méthode de remise de la valeur
D. mutable.map a une méthode de remise de la valeur