Scarica il pdf
1) Spiega cos'è Scala?
Scala è un linguaggio di programmazione e scripting funzionale agli oggetti per applicazioni software generali progettato per esprimere soluzioni in modo conciso.
2) Cos'è un "set Scala"? Quali sono i metodi attraverso i quali vengono espressi i set di operazioni?
Il set Scala è una raccolta di elementi a coppie dello stesso tipo. Il set Scala non contiene elementi duplicati. Esistono due tipi di set, mutabili e immutabili.
3) Cos'è una "mappa in scala"?
Scala map è una raccolta di coppie di chiavi o valori. In base alla sua chiave è possibile recuperare qualsiasi valore. I valori non sono univoci ma le chiavi sono uniche nella mappa.
4) Qual è il vantaggio di Scala?
- Stile funzionale meno soggetto a errori
- Elevata manutenibilità e produttività
- Elevata scalabilità
- Alta testabilità
- Fornisce funzionalità di programmazione concorrente
5) In che modo Scala è migliore di altri linguaggi di programmazione?
- Gli array usano generici regolari, mentre in altre lingue, i generici sono fissati come un ripensamento e sono completamente separati ma hanno comportamenti sovrapposti con gli array.
- Scala ha "val" immutabile come caratteristica del linguaggio di prima classe. Il "val" di scala è simile alle variabili finali di Java. I contenuti possono cambiare ma il riferimento principale è immutabile.
- Scala lascia 'if blocks', 'for-yield loops' e 'code' tra parentesi graffe per restituire un valore. È più preferibile ed elimina la necessità di un operatore ternario separato.
- Singleton ha oggetti singleton anziché statici classici C ++ / Java / C #. È una soluzione più pulita
- Le raccolte immutabili persistenti sono quelle predefinite e integrate nella libreria standard.
- Ha tuple native e un codice conciso
- Non ha codice targa caldaia
6) Cosa sono le variabili Scala?
I valori e le variabili sono due forme presenti in Scala. Una variabile valore è costante e non può essere modificata una volta assegnata. È immutabile, mentre una variabile regolare, d'altra parte, è mutabile e puoi cambiare il valore.
I due tipi di variabili sono
var myVar: Int = 0;
val myVal: Int = 1;
7) Menzionare la differenza tra un oggetto e una classe?
Una classe è una definizione per una descrizione. Definisce un tipo in termini di metodi e composizione di altri tipi. Una classe è un modello dell'oggetto. Mentre, un oggetto è un singleton, un'istanza di una classe che è unica. Una classe anonima viene creata per ogni oggetto nel codice, eredita da qualsiasi classe tu abbia dichiarato l'oggetto da implementare.
8) Cos'è la coda ricorsiva in scala?
La "ricorsione" è una funzione che chiama se stessa. Una funzione che chiama se stessa, ad esempio, una funzione "A" chiama la funzione "B", che chiama la funzione "C". È una tecnica usata frequentemente nella programmazione funzionale. Affinché una coda ricorsiva, la chiamata alla funzione deve essere l'ultima funzione da eseguire.
9) Cos'è la 'scala trait' in scala?
I "tratti" vengono utilizzati per definire i tipi di oggetto specificati dalla firma dei metodi supportati. Scala consente di essere parzialmente implementato ma i tratti potrebbero non avere parametri del costruttore. Un tratto consiste nella definizione del metodo e del campo, mescolandoli in classi può essere riutilizzato.
10) Quando puoi usare i tratti?
Non esiste una regola specifica quando puoi usare i tratti, ma c'è una linea guida che puoi prendere in considerazione.
- Se il comportamento non verrà riutilizzato, rendilo una classe concreta. Comunque non è un comportamento riutilizzabile.
- Per ereditare da esso nel codice Java, è possibile utilizzare una classe astratta.
- Se l'efficienza è una priorità, propendi per l'utilizzo di una classe
- Rendilo un tratto se può essere riutilizzato in più classi e non correlate. In parti diverse della gerarchia di classi solo i tratti possono essere mescolati in parti diverse.
- Puoi usare la classe astratta, se vuoi distribuirla in forma compilata e ti aspetti che gruppi esterni scrivano classi che ereditano da essa.
11) Cosa sono le classi di casi?
Le classi case forniscono un meccanismo di decomposizione ricorsivo tramite il pattern matching, sono classi regolari che esportano il loro parametro costruttore. È possibile accedere direttamente ai parametri del costruttore delle classi case e vengono trattati come valori pubblici.
12) Qual è l'uso delle tuple in scala?
Le tuple Scala combinano un numero fisso di elementi insieme in modo che possano essere trasmesse come intere. Una tupla è immutabile e può contenere oggetti con tipi diversi, a differenza di un array o di un elenco.
13) Cos'è il currying funzionale in Scala?
Il currying è la tecnica per trasformare una funzione che accetta più argomenti in una funzione che accetta un singolo argomento Molte delle stesse tecniche di linguaggi come Haskell e LISP sono supportate da Scala. Il currying funzionale è uno dei meno usati e fraintesi.
14) Cosa sono i parametri impliciti in Scala?
Il parametro implicito è il modo in cui consente di "trovare" i parametri di un metodo. È simile ai parametri predefiniti, ma ha un meccanismo diverso per trovare il valore "predefinito". Il parametro implicito è un parametro del metodo o del costruttore contrassegnato come implicito. Ciò significa che se un valore di parametro non viene menzionato, il compilatore cercherà un valore "implicito" definito all'interno di un ambito.
15) Cos'è una chiusura in Scala?
Una chiusura è una funzione il cui valore di ritorno dipende dal valore delle variabili dichiarate al di fuori della funzione.
16) Cos'è la Monade in Scala?
Una monade è un oggetto che avvolge un altro oggetto. Si passano i mini-programmi Monad, cioè le funzioni, per eseguire la manipolazione dei dati dell'oggetto sottostante, invece di manipolare l'oggetto direttamente. Monad sceglie come applicare il programma all'oggetto sottostante.
17) Cos'è la funzione anonima Scala?
In un codice sorgente, le funzioni anonime sono chiamate "letterali di funzione" e in fase di esecuzione, i letterali di funzione vengono istanziati in oggetti chiamati valori di funzione. Scala fornisce una sintassi relativamente semplice per la definizione di funzioni anonime.
18) Spiegare le funzioni "Scala di ordine superiore"?
Scala consente la definizione di funzioni di ordine superiore. Si tratta di funzioni che accettano altre funzioni come parametri o il cui risultato è una funzione. Nell'esempio seguente, la funzione apply () accetta un'altra funzione "f" e un valore "v" e applica la funzione a v.
Esempio:
object Test {def main(args: Array[String]) {println( apply( layout, 10) )}def apply(f: Int => String, v: Int) = f(v)def layout[A](x: A) = "[" + x.toString() + "]"Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato.
C:/>scalac Test.scalaC:/>scala Test[10]C:/>
19) Qual'è la differenza tra var e value?
In scala, puoi definire una variabile usando le parole chiave a, val o var. La differenza tra val e var è che var è molto simile alla dichiarazione java, ma val è leggermente diversa. Non possiamo cambiare il riferimento in modo che punti a un altro riferimento, una volta che la variabile è stata dichiarata usando val. Le variabili definite utilizzando le parole chiave var sono modificabili e possono essere modificate un numero qualsiasi di volte.
20) Cosa sono le opzioni, alcune e nessuna in scala?
'Opzione' è un tipo generico Scala che può essere un valore generico 'qualche' o nessuno. 'Queue' lo usa spesso per rappresentare primitive che possono essere nulle.
21) Come mi aggiungo alla lista?
In scala per aggiungere in una lista, usa "
:+” single value
var myList = List.empty[String]myList :+= "a"myList :+= "b"myList :+= "c"use++ for appending a listvar myList = List.empty[String]myList ++= List("a", "b", "c")
22) Come puoi formattare una stringa?
Per formattare una stringa, usa il metodo .format (), in scala puoi usare
Val formatted = "% s% i" .format (mystring.myInt)
23) Perché scala preferisce l'immutabilità?
Scala preferisce l'immutabilità nel design e in molti casi la utilizza come impostazione predefinita. L'immutabilità può aiutare quando si affrontano problemi di uguaglianza o programmi concorrenti.
24) Quali sono i quattro tipi di identificatori di scala?
I quattro tipi di identificatori sono
- Identificatori alfanumerici
- Identificatori dell'operatore
- Identificatori misti
- Identificatori letterali
25) Quali sono i diversi tipi di letterali Scala?
I diversi tipi di letterali in scala sono
- Letterali interi
- Valori letterali in virgola mobile
- Valori letterali booleani
- Letterali simbolo
- Letterali carattere
- Valori letterali stringa
- Stringhe multilinea