Score %0 (0 correct0 incorrect20 unanswered)
Q1. Il bytecode di Scala può essere eseguito sopra a Java VM. Qual è la differenza fondamentale tra Java object.clone() e Scala object.copy()?
- Uno è un oggetto Java, l'altro è un oggetto Scala.
- clone() copierà le strutture di classe ma non i dati, mentre copy() copierà anche i dati in nuovi oggetti.
- Non c'è differenza.
- copy() ti permette di cambiare i valori durante il processo di copia; clone() no.
Q2. Quale valore restituisce questo codice?
val m1 = Map("a"->1,"b"->2,"c"->3)
m1("a")
Q3. Qual è un modo per evitare dettagli di parallelizzazione a basso livello?
- monadi
- funzioni letterali
- funzioni parzialmente applicate
- collezioni parallele
Q4. Cosa usi in ScalaTest per vedere un diagramma dettagliato dei messaggi di errore quando un test fallisce?
- ArgumentExceptions
- AssertionException
- DiagrammedAssertions
- JUnit
Q5. Che tipo di dati useresti per memorizzare una collezione immutabile di oggetti che contiene un numero fisso di tipi variabili?
- Array
- ImmutableCollection
- Lista
- Tuple
Q6. Dopo aver definito una funzione nell'interprete, Scala restituisce quanto segue. Cosa indica il ()
?
myfnc: ()Unit
- La funzione non ha effetti collaterali.
- La funzione non accetta parametri.
- La funzione non restituisce alcun valore.
- Restituire tipi di unità alla funzione è una chiusura.
Q7. Che tipo di numero è 1234.e5?
- esadecimale
- corto
- virgola mobile
- lungo
Q8. Quando converti una mappa in una lista usando il metodo toList
della mappa, il risultato sarà di che tipo?
-
List[(String, String)]
-
List[(Array, Array)]
-
List[(Collection, Collection)]
-
List
Q9. Che tipo di oggetto crea questo codice?
val x = (1234, "Attivo")
Q10. Qual è una sottoclasse di tutte le classi?
- AnyVal
- AnyRef
- Metodo
- Null
Null nella libreria standard di Scala. La domanda è un po' scorretta - Null è un sottotipo di ogni tipo eccetto quelli delle classi di valore
Q11. Per la costruzione for-yield, lo scope è separato tra corpo for e corpo yield?
- Sì e no. È diverso a seconda della costruzione for e di ciò che fa.
- Sì, perché la sezione for non espone il suo scope.
- No, perché for-yield condivide lo stesso scope, anche se sono all'interno di parentesi graffe separate.
- Sì, perché sono all'interno di parentesi graffe diverse.
Esempio: il corpo yield ha accesso alla variabile e
dal corpo for
val a = Array(1, 2, 3, 4, 5)
for {
e <- a if e > 2
} yield e
Q12. Qual è un modo per implementare il pattern matching sui metodi?
- usando regex
- usando monadi
- usando la corrispondenza di stringhe
- usando le classi case
Nota: domanda ambigua, non è chiaro quale tipo di pattern matching sia inteso qui.
Q13. Qual è il valore di z dopo l'esecuzione di questo codice?
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. Quale termine si usa per specificare una precondizione?
- assert
- require
- precondizione
- mustHave
Q15. Quale tipo Scala può lanciare un'eccezione o un valore calcolato con successo, ed è comunemente usato per catturare e propagare gli errori?
-
scala.util.ExceptionHandling
-
scala.Catch.Throw
-
scala.exception.TryFinally
-
scala.util.Try
scala.util.Try
Q16. Qual è il tipo di dati di y dopo l'esecuzione di questo codice?
val y = (math floor 3.1415 * 2)
Q17. Quando si utilizza il pattern matching, quale carattere corrisponde a qualsiasi oggetto?
Pattern Matching
Q18. Hai creato un array usando val. Puoi cambiare il valore di qualsiasi elemento dell'array—perché sì o perché no?
- Sì, il riferimento all'array è immutabile, quindi la posizione a cui punta l'array è immutabile. I valori nell'array sono mutabili.
- Il 0-esimo elemento è immutabile e non può essere modificato. Tutti gli altri elementi possono essere modificati.
- Sì, val non rende gli array immutabili.
- No, val rende l'array e i valori dell'array immutabili.
Spiegazione:
val a1 = Array(1, 2, 3)
a1{1} = 3 // OK
a1 = Array(1, 3, 3) // errore: riassegnazione a val
Q19. Qual è l'output di questa funzione?
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. Come chiami gli oggetti con stato immutabile?
- singleton
- oggetti stazionari
- oggetti funzionali
- oggetti fissi
Nota: i singleton possono avere stato mutabile