MCQSS.com offre domande e risposte gratuite su Scala che coprono una vasta gamma di argomenti. Il nostro formato interattivo ti permette di sapere immediatamente se hai risposto correttamente alle domande. Esplora la nostra collezione di domande a scelta multipla e metti alla prova le tue conoscenze su Scala oggi stesso! Non è necessario acquistare una membership o registrarsi, puoi utilizzare gratuitamente il nostro sito. Non perdere l'opportunità di migliorare le tue competenze e prepararti per gli esami con MCQSS.com.
A. "&"
B. "@"
C. "$"
D. "_"
A. Private [EsempioPackage] def foo = {...}
B. pacchetto [esempiopackage] def foo = {...}
C. def foo = {...} // Accesso predefinito
D. pacchetto def foo = {...} // pacchetto privato
E. [Esempio di package] private def foo = {...}
A. Elenco (1,2,3) :: Elenco (5)
B. Elenco (1,2,3) + 5
C. Elenco (1,2,3):+ 5
D. Elenco (1,2,3) :: = 5
E. Elenco (1,2,3) :: 5
A. Un valore predefinito, utilizzato solo se l'elenco è vuoto
B. Un elenco, al quale vengono aggiunti i risultati.
C. L '"accumulatore", che è il valore iniziale per `b`
D. L '"accumulatore", che è il valore iniziale per `a`
A. Anyref è l'oggetto root in Scala
B. Non esiste una classe del genere
C. Anyref deriva da Anyval
D. Tutti i tipi tranne i tipi di valore scendono da Anyref
A. Un parametro di tipo fisso quando la classe è sottotizzata.
B. Un parametro di tipo che può variare per super tipi.
C. Un parametro di tipo fisso per super tipi.
D. Un parametro di tipo che può variare in quanto la classe è sottotizzata.
A. Sì, JVM Runtime supporta l'ottimizzazione della chiamata di coda.
B. NO
C. In parte a livello di compilatore. Il compilatore proverà a rilassarti la chiamata ricorsiva in un ciclo.
D. In parte, perché lo stack è infinito in Scala.
A. Niente
B. nullo
C. Elenco()
D. Nessuno
A. Associazione dati
B. Tipi unificanti
C. Classi di sigillatura
D. Curry
A. Funzioni
B. Parametri
C. Concetti
D. Costrutti
A. Per inferenza
B. Per valore
C. Per nome
D. Come riferimento
A. Le lezioni di casi come sigillate e quindi non possono essere estese
B. Puoi costruire istanze di queste classi senza utilizzare la nuova parola chiave
C. Il metodo toString viene ridefinito automaticamente
D. Il metodo equals viene ridefinito automaticamente
A. L'operazione "piega"
B. La somma corrente mentre si itetera attraverso l'elenco
C. L'elemento successivo nell'elenco
D. Il valore di ritorno per l'espressione
A. Quando si applica la funzione, non si trasmette argomenti per tutti i parametri definiti dalla funzione, ma solo per alcuni di essi, lasciando i rimanenti in bianco
B. Una funzione che supporta il curry
C. Una funzione parzialmente definita.
D. Un tipo di funzione interno utilizzato dal pacchetto Scala.Collection.immutable.
A. Elenca [qualsiasi]
B. Elenco [int]
C. Elenca [AnyRef]
D. Elenco [booleano]
E. Elenca [Anyval]
A. Classe base
B. Super-script
C. Super-Classe
D. Classe di funzione
A. Non esiste una classe sigillata.
B. Una sottoclasse di una classe sigillata può ereditare ovunque solo all'interno dello stesso pacchetto.
C. Una classe sigillata potrebbe non essere ereditata direttamente, tranne se è definita nello stesso file di origine.
D. Le istanze di una classe sigillata non possono essere modificate.
A. ~
B. *
C. !
D. |
A. 22
B. 16
C. 2
D. 20
A. Polimorfismo sottotipo, ad-hoc e parametrico
B. Sottotipo e parametrico
C. Nessuna di queste
D. Parametrico
E. Ad-hoc e parametrico
A. Tipo sicuro
B. Digita chiamata
C. Tipo legato
D. Digitare la funzione
A. Crea automaticamente un elenco [t] con xey come membri con t di tipo 'int'
B. una tupla con arity 2
C. Assegna 100 a variabile y
D. Tratta X e Y come stessi riferimenti nell'ulteriore codice
E. produrre un errore di compilazione
A. VERO
B. Falso
A. Una classe semplice
B. Un segnaposto
C. Una guardia
D. Una funzione
A. (Elenco (1,2,3), elenco (4,5,6))
B. Elenco (1,2,3,4,5,6)
C. 21
D. Elenco (5,7,9)
E. Elenco ((1,4), (2,5), (3,6))
A. Tutti i letterali delle stringhe sono un'istanza di Scala.Collection.immutable.stringops
B. Una sottoclasse di java.lang.string viene generata in fase di esecuzione, aggiungendo il metodo "Lunghezza" alla sua firma.
C. Una conversione implicita converte java.lang.string in una scala.collection.immutable.stringops, che supporta un metodo di lunghezza.
D. Tutti i letterali di stringa possono essere elaborati dall'interprete di stringa Scala.
A. Scala non supporta le funzioni di ordine superiore
B. Le funzioni di ordine superiore sono funzioni senza parametri che si ritornano
C. Le funzioni di ordine superiore sono funzioni che prendono altre funzioni come parametri.
D. Le funzioni di ordine superiore sono funzioni che restituiscono funzioni
A. Un iteratore è un tipo di raccolta
B. Scala non supporta iteratori
C. Un iteratore è un flusso di articoli in arrivo in cui avanzare all'articolo successivo consuma l'elemento corrente
D. Un tratto dell'iteratore viene miscelato in tutti i tipi di raccolta
A. Falso
B. VERO
A. Una guardia
B. Un albero
C. Un array
D. Una jolly
A. Un matcherror verrebbe lanciato.
B. Nulla sarebbe accaduto perché "ciao" non è di tipo "nessuno"
C. La dichiarazione restituirebbe "Ciao!"
D. Verrebbe lanciata una nullpointerException.
A. Un linguaggio dinamico che può essere utilizzato per programmare in modo efficiente in stile oggetto
B. Un linguaggio avanzato orientato agli oggetti molto meglio di Java che funziona su JVM
C. Un linguaggio Java avanzato implementato da Martin Odersky
D. Un linguaggio dell'oggetto funzionale che supporta costrutti di programmazione funzionale
E. Un linguaggio di programmazione funzionale puro
A. VERO
B. Falso
A. Sì, ma solo per i tratti.
B. NO
C. Sì, ma non è Scala idiomatica e quindi scoraggiata.
D. Sì, tutti i metodi e le funzioni devono avere almeno una dichiarazione di ritorno.
A. VERO
B. Falso
A. Interfaccia
B. Struttura
C. argomenti
D. piattaforma
A. "vuoto"
B. "Bool"
C. "nullo"
D. "Ottenere"
A. Un linguaggio funzionale
B. Tutte queste scelte descrivono Scala
C. Un linguaggio orientato agli oggetti
D. Una lingua che funziona sulla VM
A. Un oggetto mono
B. Un singolo argomento
C. Un oggetto singleton
D. Un oggetto statico
A. Oggetti
B. Metodi
C. Booleani
D. Operazioni
A. "Scalacom"
B. "Cscala"
C. "Scala.comp"
D. "Scalac"
A. Scala.anyref
B. È sempre necessario specificare la superla
C. Scala.importref
D. Scalac use.ref
A. VERO
B. Falso
A. L'ordine della corrispondenza del modello è irrilevante
B. Il set di casi deve essere esaustivo
C. La corrispondenza del modello non funziona con le classi di casi
D. I modelli non funzionano con tipi strutturali
A. pubblico int %plus (int a)
B. Non è possibile definire un operatore Scala utilizzando il codice sorgente Java.
C. public int #Plus (int a)
D. privato int $ plus (int a)
E. public int $ plus (int a)
A. Un elenco è una sequenza immutabile finita
B. Un elenco è ottimale per i motivi di accesso simili a stack (LIFO), simili allo stack
C. L'elenco è un proxy per java.util.arraylist
D. Un elenco è covariante
A. Falso
B. VERO
A. Corda
B. Qualunque
C. Unità
A. NO
B. SÌ
A. restituirà nessuno perché corrisponde a "qualsiasi cosa"
B. Restituirà "ciao!" Perché un "nessuno" è un tipo di "opzione"
C. Non compilerà
D. Restituirà "qualsiasi cosa"
A. `() => Unit` non è valido scala
B. Una funzione pura
C. Una funzione letterale
D. Una definizione del tipo di procedura
A. 8
B. 2
C. 30
D. Niente, non c'è valore di ritorno.
E. 1
A. Una variabile che viene valutata solo una volta
B. `Lazy Var` non è supportato da Scala
C. Una variabile immutabile
D. Una variabile che una volta valutata può essere referenziata solo dall'ambito di creazione.
A. Solo se il metodo si aspetta un singolo parametro.
B. A meno che la funzione non supporti i parametri di tipo covariante.
C. A meno che la funzione non supporti i parametri di tipo controvariante.
D. Solo se il metodo si aspetta una funzione parziale.
A. x eq y
B. x.object == y.object
C. X == Y.
D. X = Y.
A. Le definizioni predefinite per i metodi "uguali" e "hashcode" non sono fornite
B. Viene fornita una definizione predefinita per il metodo "ToString" e stampare il valore in un modulo di origine
C. La "nuova" parola chiave non è obbligatoria per creare istanze di classi casi
D. Le funzioni getter vengono definite automaticamente per i parametri del costruttore
A. L'opzione [+A] è astratta.
B. Scala.nothing deriva dall'opzione [+a]
C. L'opzione [+A] ha lo scopo di sostituire l'uso di null.
D. Nessuno è derivato dall'opzione [+A]
A. Le lezioni di casi sono dotate di metodi applicabili e non applicabili.
B. Le classi di casi hanno serializzatori predefiniti
C. Le lezioni di casi sono sempre immutabili.
D. Le classi di casi possono essere utilizzate nei matcher.
A. 2
B. Eccezione
C. 1
A. i = i + 1
B. I ++
C. II+
D. i += 1
A. una classe astratta
B. una classe concreta
C. una classe di caso
D. Un'interfaccia
E. un tratto
A. Kojo
B. Typesafe
C. Venner
D. Fodema
A. Tipo [unità]
B. Classe [unità]
C. Unità
D. Niente
A. Operazione
B. Classe
C. Metodo
D. Ambiente
A. 1
B. 2
C. Eccezione
A. VERO
B. Falso
Quale delle seguenti affermazioni è falsa sulle funzioni in Scala?
A. È possibile definire def aggiungi (x: int, y: int) = x + y come def aggiungi (x: int) (y: int) = x + y c) Il seguente codice fornisce un errore di compilazione
B. Funzioni che prendono altre funzioni come parametri o il cui risultato è una funzione sono funzioni di ordine superiore
C. var userdir = () => {System.getProperty ("user.dir")} println (userdir)
D. È possibile nidificare le definizioni delle funzioni. come def test = {def NestestSt = {println ("NESTERTEST")} NESTERTEST}
Utilizzando il frammento di codice di seguito, scegli l'istruzione corretta che spiega l'errore?
oggetto main estende l'app {def mysum [t <: numero] (as: t*): double = as.foldleft (0d) (_ + _.DoubleValue) implicito def intTTointeger (n: int) : Integer = new Integer (n.Toint) var r = mysum (2, 3)} Quando il rispetto produce il seguente errore principale.Scala: 4: Errore: argomenti di tipo infinito [int] non conformarsi al metodo dei limiti dei parametri di tipo Mysum [ T <: numero] var r = mysum (2, 3) ^
A. La classe int appartiene alle classi di valore le cui istanze non sono rappresentate come oggetti
B. [T <: numero di tipo Numero significa che t deve essere un sottotipo di numero
C. Non vi è alcuna conversione implicita da istanze di int a istanze di doppia
D. Importing Scala.math.bigint._?
Quale dei seguenti combinatori funzionali è falso?
A. foreach valuta una funzione su ciascun elemento nell'elenco ma non restituisce nulla
B. La mappa valuta una funzione su ciascun elemento nell'elenco, restituendo un elenco con lo stesso numero di elementi
C. Trova restituisce tutti gli elementi di una raccolta che corrisponde a una funzione predicata
D. zip aggrega il contenuto di due elenchi in un unico elenco di coppie
Per il codice seguente, scegli la migliore istruzione per descrivere questo errore?
class A (n: int) {var value = n} class B (n: int) {val value = new a (n)} test oggetto {def main (args: array [string]) {val x = new b (5) x = new b (6)}} main.scala: 7: errore: riassegnazione a val x = new b (6) ^
A. Gli oggetti creati con var sono immutabili
B. Non posso sostituire l'oggetto creato sulla riga sopra B (6) con questo nuovo.
C. Devo sostituire x = new b (6) con x = b (6)
D. Devo sostituire x = new b (6) con x = b.pply (6)
Come si forniscono costruttori sovraccarichi in Scala?
A. Usa la parola chiave "questa" come def questa (...
B. Sovraccaricare la funzione applica
C. Non puoi sovraccaricare i costruttori, ma puoi farlo con funzioni
D. I parametri con valori predefiniti devono venire prima di quelli senza valori predefiniti
Scegli la descrizione corretta per entrambe le espressioni, per le due espressioni come segue? espressione 1 def m1 (i: int) = i+2 espressione 2 (i: int) => i+2
A. L'espressione 1 è una funzione
B. L'espressione 2 è un metodo
C. L'espressione 1 è un metodo
D. L'espressione 2 non riesce a compilare
Quale delle seguenti affermazioni non è corretta sul flusso?
A. Puoi attraversare lo stesso flusso e iteratore più volte e ottenere lo stesso risultato ogni volta
B. Stream e iterator sono pigri
C. In un flusso una volta calcolato, un valore rimane calcolato e viene riutilizzato
D. Stream.From (1) crea un flusso per numeri interi positivi
Quale delle seguenti affermazioni del codice è corretta, usando l'oggetto Scala all'interno di Java?
A. Scala.util.list <TomeObjectType> Res = Scala.Collection.javaConverters $ .Module $ .seqasjavalistsConverter (VariaLename) .AsJava ();
B. Scala.util.list <TomeObjectType> Res = Scala.Collection.javaConverters $ .Module $ .seqasjavalistConverter (VariaLename) .AsJava ();
C. java.util.list <SomeobjectType> res = scala.collection.javaConverters $ .module $ .seqasjavalistConverter (VariableName) .asjava ();
D. Seq <powerObjectType> variaLLename = ScalaClass.MethodInTheScalaClass ();
Quale delle seguenti è vera per oggetti, tratti e classi?
A. Per creare un programma è necessario utilizzare il metodo principale in classe
B. Puoi avere più istanze di una classe
C. Un oggetto ha esattamente un'istanza, non puoi chiamare nuovo myobject
D. L'oggetto A estende B con C. In questa definizione A è l'oggetto B è di classe e C è il tratto
Per il frammento di codice di seguito, scegli l'espressione che mostra l'output corretto?
oggetto main estende app {val adder = new Adder (2) System.out.println (adder.apply (4)) var a = new Adder (4) System.out.println (A.AppLyObj ;
A. 9 Quindi 6
B. Errore di compilazione
C. 6 allora nessuno
D. 6 Quindi 9
Per il frammento di codice di seguito
L'oggetto main estende l'app {def mysum [t <: numero] (as: t*): double = as.foldleft (0d) (_ + _.doubleValue) implicito def intTTointeger (n: int): integer = new Integer (n.Toint) var r = mysum (2, 3)}
Quando il massimo produce il seguente errore, selezionare l'istruzione corretta che risolve l'errore quando si rimuove la riga implicita def intTTointeger (n: int): integer = new integer (n.Toint) main.scala: 4: errore: argomenti di tipo infinito [int] non conformarsi al metodo dei limiti del parametro del tipo di Mysum [t <: numero] r = mysum (2, 3) ^
A. def mysum [t>: numero] (AS: t*): doppio = as.oldleft (0d) (_ + _.DoubleValue)
B. def mysum [t <% numero] (AS: t*): doppio = as.oldleft (0d) (_ + _.DoubleValue)
C. def mysum [t <: double] (as: t*): double = as.oldleft (0d) (_ + _.DoubleValue)
D. def mysum [t>: double] (as: t*): double = as.oldleft (0d) (_ + _.DoubleValue)
Per il frammento di codice seguente, scegli l'istruzione corretta?
Val Aa = BB Filter (x => x % 2 == 0)
A. AA sarà una nuova collezione, mentre BB sarà comunque lo stesso di prima
B. AA sarà una nuova collezione, mentre BB creerà una nuova copia di BB per l'operazione di filtro
C. AA sarà una nuova collezione, mentre l'operazione di filtro creerà una nuova copia mutabile di BB
D. AA sarà una nuova collezione mutabile, mentre BB sarà comunque lo stesso di prima
Quale delle seguenti è falsa per Scala?
A. Scala è un linguaggio orientato all'oggetto puro
B. Scala supporta le classi generiche
C. Scala supporta le funzioni di ordine superiore
D. Scala è pura funzionale
Scegli l'affermazione che descrive meglio la funzione "Applica"?
A. Quando si forniscono i parametri direttamente a un oggetto, si passa questi parametri alla funzione Applica di quell'oggetto
B. La funzione applicazione è esplicitamente definita negli oggetti della classe Case
C. La funzione Applica è un costruttore ausiliario
D. Quando si costruisce un oggetto con i parametri, si passa i parametri implicitamente alla funzione Applicazione di quell'oggetto
Per il frammento di codice di seguito, scegli l'espressione che mostra l'output corretto?
oggetto main estende app {val adder = new Adder (2) system.out.println (adder.apply (4))} class Adder (x: int) {var y = 5 def applic (y : Int) = x + y}
A. 9
B. Errore di compilazione
C. 6
D. Nessuno
Leggi il seguente codice e racconta quando eseguono le funzioni Scala?
A. Scala> def showame () = println ("questa è una stringa") mostrato: () unità scalea> mostrato questa è una stringa scala> mostrata _ res1: () => unità = < -function0>
B. Scala> Res1 Res2: () => unità = < -function0> Scala> Res1 () Questa è una stringa Scala> Def Showame (s: String) = println ("This is a String") mostrato: (s: string) unità scala>
C. Showame <soluto>: 9: Errore: argomenti mancanti per metodo mostrato; Segui questo metodo con `_ 'se si desidera trattarlo come una funzione parzialmente applicata mostrata
D. Tutti i precedenti
Scegli l'affermazione che non è corretta per il tratto attraversabile?
A. La sua unica operazione astratta è def foreach [u] (f: Elem => u)
B. Gli oggetti traversabili possono essere finiti o infiniti
C. Tutte le collezioni si estendono traversabili
D. Gli oggetti traversabili non possono essere infiniti
Utilizzando il seguente frammento di codice, selezionare l'istruzione corretta che risolve l'errore?
class A (n: int) {var value = n} class b (n: int) {val value = new a (n)} test test {class a (n: int) {var value = n} classe b (n: int) {val value = new a (n)} oggetto main estende l'app {val x = new b (5) x.value = 6} quando rispettato produce il seguente errore main.scala: 7 : Errore: Riassegnazione a 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'interpolazione delle stringhe consente agli utenti di _____ riferimenti variabili direttamente nei letterali stringhe elaborati?
A. Incorporare
B. Globale
C. Costante
D. Statico
Qual è il modo migliore per "clonare" una classe casuale?
A. Chiama specificamente tutti i campi e usa il costruttore
B. Chiama specificamente tutti i campi e usa la funzione applica
C. Usa il metodo Copia
D. Usa l'oggetto comapnion
Per il codice seguente, scegli l'istruzione corretta che descrive il codice?
Oggetto A estende B con C {def f (x: Any): Any = ??? }
A. Dichiara una classe anonima che estende sia B e C
B. Definisce la classe B e crea tutti i metodi nell'oggetto B come metodi statici sulla classe B
C. Se una classe denominata C è esplicitamente definita, A sarà un oggetto Companion a C
D. Dichiara una classe A compagna
Scala fornisce __ versioni di tutti i suoi tipi di raccolta. Queste versioni non possono essere cambiate dopo che sono state inizializzate. Dovresti usarli ogni volta che sai che una raccolta non dovrebbe essere cambiata, in modo da non modificarla accidentalmente più tardi?
A. immutabile
B. inizializzazione
C. conversione
D. elenchi
Puoi convertire qualsiasi collezione. a un array o un elenco. Tale conversione richiede la copia di tutti gli elementi della collezione e quindi è rallentata per le grandi raccolte. A volte devi farlo, tuttavia, a causa di un'API esistente. Inoltre, molte collezioni hanno comunque pochi elementi, nel qual caso c'è solo una piccola penalità di velocità?
A. Conversione
B. Elenchi
C. ArrayBuffers
D. Vettore
Se seq è un tratto, allora perché var x = seq (1, 2, 3) è legale?
A. Seq è un'implementazione
B. Seq non è un tratto è un oggetto
C. Seq non è un tratto è una collezione
D. Stai chiamando il metodo Applica sull'oggetto
Scegli la seguente dichiarazione che non è corretta per le raccolte parallele?
A. È possibile sostituire una collezione non parallela con una parallela
B. Qualsiasi raccolta può essere convertita in parallelo chiamando il metodo pari su di esso
C. Chiamare Toseq su una collezione parallela restituirà una raccolta seriale.
D. La gerarchia delle collezioni parallele ha gli stessi nomi per i tratti, ma preceduta con il par
Per il codice seguente, scegli l'istruzione corretta che mostra l'output?
var l1 = scala.collection.mutable.mutablelist [string] () val l2 = elenco [string] () per (a <- 1 a 100) {l1 += a.ToString} println (l1 .size); for (a <- 1 a 100) {l2:+ a.toString} println (l2 .size);
A. 100 il 100
B. 0 poi 100
C. 100 allora 0
D. 0 Quindi 0
Scegli l'istruzione che non è corretta utilizzando il codice seguente?
(da 1 a 10) .PAR mappa println
A. Se aggiungi par, ricevi una raccolta parallela e le operazioni su di essa verranno sempre elaborate in parallelo.
B. Se si aggiunge pari, ricevi una raccolta parallela e le operazioni su di essa verranno sempre elaborate in parallelo solo se più di un thread di sistema è disponibile
C. Divide la tua lista per l'elaborazione su più thread
D. Dato che il par sta agendo su un intervallo, copia gli elementi in una parangia
Qual è l'output del seguente codice?
oggetto matchTest {def matchtest (x: any): any = x match {case 1 => "un caso" due "=> 2 caso y: int =>" scala.int "} def main (args: array [string]) {println (matchtest (2))}}
A. Errore di compilazione
B. Errore di runtime
C. Scala.int
D. 2
Qual è l'output del codice dato di seguito?
DEF AddInt (A: int = 5, B: int = 7): int = a + b stampa (addint (3,7), addint (3), addint (), addint (b = 5))
A. 10,10,12,10
B. Errore di compilazione
C. 10, 10, 12, 12
D. 12,12,12,12
Per il codice seguente, scegliere l'istruzione corretta che descriva un problema con il codice?
val l = elenco [string] () per (a <- 1 a 100) {l:+ a.ToString}
A. L è un elenco mutabile
B. "L:+ A.ToString" restituisce un nuovo elenco ogni volta
C. "L:+ A.ToString" produce una comprensione
D. per (a <- 1 a 100) {l:+ a.toString} è equivalente a (da 1 a 100) .map (_. toString)
Qual è l'output del seguente codice?
def main (args: array [string]) {val x = {print ("x"); 1} pigro val y = {print ("y"); 2} def z = {stampa ("Z"); 3} z+y+x+z+y+x}
A. zyxzyx
B. xyzz
C. Zyzz
D. Xzyz
Come raggruppare utilizzando più colonne nelle raccolte Scala?
A. Records.Groupby (record => (record.column1, record.column2, record.column3))
B. Records.setGroup (record => (record.column1, record.column2, record.column3))
C. Records.GroupSet (record => (record.column1, record.column2, record.column3))
D. Tutti i precedenti
Scegli l'output corretto utilizzando il frammento di codice di seguito?
ListOFints.sliding (2) .Tolist
A. Elenco (1, 2), elenco (2, 3)
B. Elenco (1), elenco (2), elenco (3)
C. Elenco (elenco (1), elenco (2), elenco (3))
D. Elenco (elenco (1, 2), elenco (2, 3))
Scegli l'affermazione che non è corretta per Mutable.map di Scala?
A. mutable.map è un iterabile di tuple2
B. mutable.map ha un metodo di aggiornamento per l'impostazione dei tasti
C. mutable.map ha un metodo WithDefaultValue che restituisce un valore predefinito per le chiavi
D. mutable.map ha un metodo WithDefaultValue che restituisce un valore predefinito per i tasti indefiniti