Top 25 Scala Interview Questions & Odpovede

Anonim

Stiahnite si PDF

1) Vysvetlite, čo je Scala?

Scala je objektový funkčný programovací a skriptovací jazyk pre všeobecné softvérové ​​aplikácie navrhnutý na výstižné vyjadrenie riešení.

2) Čo je to „Scala set“? Aké sú metódy, ktorými sa vyjadrujú operačné súbory?

Sada Scala je kolekcia párových prvkov rovnakého typu. Sada Scala neobsahuje žiadne duplicitné prvky. Existujú dva druhy súprav, premenlivé a nemenné.

3) Čo je „mapa Scala“?

Scala mapa je kolekcia párov kľúčov alebo hodnôt. Na základe jeho kľúča je možné získať ľubovoľnú hodnotu. Hodnoty nie sú jedinečné, ale kľúče sú na mape jedinečné.

4) Aká je výhoda Scaly?

  • Menej náchylný na chyby funkčný štýl
  • Vysoká udržiavateľnosť a produktivita
  • Vysoká škálovateľnosť
  • Vysoká testovateľnosť
  • Poskytuje funkcie súbežného programovania

5) V čom je Scala lepšia ako v iných programovacích jazykoch?

  • Polia používajú bežné generiká, zatiaľ čo v inom jazyku sú generiká naskrzované ako dodatok a sú úplne samostatné, ale majú prekrývajúce sa chovanie s poliami.
  • Scala má nemenný „val“ ako funkciu v prvotriednom jazyku. „Val“ škály je podobný finálnym premenným Java. Obsah môže mutovať, ale najlepší odkaz je nemenný.
  • Scala umožňuje vrátenie hodnoty „ak bloky“, „slučky pre výnos“ a „kód“ v zložených zátvorkách. Je to výhodnejšie a odpadá potreba samostatného ternárneho operátora.
  • Singleton má skôr singleton objekty ako C ++ / Java / C # classic static. Je to čistejšie riešenie
  • Trvalé nemenné zbierky sú predvolené a zabudované do štandardnej knižnice.
  • Má natívne n-tice a výstižný kód
  • Nemá kód kotlového štítku

6) Čo sú to premenné Scala?

Hodnoty a premenné sú dva tvary, ktoré prichádzajú v Scale. Hodnotová premenná je konštantná a po priradení ju nemožno zmeniť. Je nemenný, zatiaľ čo bežná premenná je naopak premenlivá a môžete zmeniť jeho hodnotu.

Sú to dva typy premenných

var myVar: Int = 0;

val myVal: Int = 1;

7) Uveďte rozdiel medzi objektom a triedou?

Trieda je definícia popisu. Definuje typ z hľadiska metód a zloženia iných typov. Trieda je plán objektu. Aj keď je objekt singleton, inštancia triedy, ktorá je jedinečná. Pre každý objekt v kóde je vytvorená anonymná trieda, ktorá dedí z akýchkoľvek tried, ktoré ste deklarovali ako objekt na implementáciu.

8) Čo je to rekurzívny chvost v škále?

„Rekurzia“ je funkcia, ktorá si hovorí sama. Funkcia, ktorá si hovorí, napríklad funkcia „A“ volá funkciu „B“, ktorá volá funkciu „C“. Je to technika často používaná vo funkčnom programovaní. Aby bol chvost rekurzívny, musí byť spätné volanie funkcie poslednou funkciou, ktorá sa má vykonať.

9) Čo je to „škálovateľná vlastnosť“ v škále?

„Vlastnosti“ sa používajú na definovanie typov objektov určených podpisom podporovaných metód. Scala umožňuje čiastočnú implementáciu, ale vlastnosti nemusia mať parametre konštruktora. Znak pozostáva z definície metódy a poľa, ich zmiešaním do tried je možné ich znovu použiť.

10) Kedy môžete použiť vlastnosti?

Neexistuje žiadne konkrétne pravidlo, keď môžete používať znaky, ale môžete si vziať do úvahy usmernenie.

  • Ak sa správanie nebude opakovane používať, urobte z neho konkrétnu triedu. Nejde o nijako opakovane použiteľné správanie.
  • Na dedenie z neho v kóde Java je možné použiť abstraktnú triedu.
  • Ak je prioritou efektívnosť, prikláňajte sa k triede
  • Urobte z neho vlastnosť, ak by sa mohla znovu použiť vo viacerých a nesúvisiacich triedach. V rôznych častiach hierarchie tried možno do rôznych častí zmiešať iba znaky.
  • Môžete použiť abstraktnú triedu, ak ju chcete distribuovať v skompilovanej podobe a očakávate, že vonkajšie skupiny budú písať dediace triedy.

11) Čo sú triedy prípadov?

Triedy prípadov poskytujú rekurzívny mechanizmus rozkladu pomocou porovnávania vzorov, ide o bežné triedy, ktoré exportujú svoj parameter konštruktora. K parametrom konštruktora tried prípadov je možné pristupovať priamo a považujú sa za verejné hodnoty.

12) Aké je použitie n-tic v Scale?

Tuple Scala kombinujú pevný počet položiek dohromady, aby ich bolo možné obísť ako celok. N-tica je nemenná a môže obsahovať objekty rôznych typov, na rozdiel od poľa alebo zoznamu.

13) Čo je funkčné kari v Scale?

Currying je technika transformácie funkcie, ktorá berie viac argumentov, na funkciu, ktorá má jediný argument. Scala podporuje mnoho rovnakých techník ako jazyk ako Haskell a LISP. Funkčné kari je jedným z najmenej využívaných a nepochopených.

14) Čo sú implicitné parametre v Scale?

Implicitný parameter je spôsob, ktorý umožňuje „vyhľadanie“ parametrov metódy. Je to podobné ako predvolené parametre, ale má iný mechanizmus na vyhľadanie „predvolenej“ hodnoty. Implicitný parameter je parameter metódy alebo konštruktora, ktorý je označený ako implicitný. To znamená, že ak nie je uvedená hodnota parametra, kompilátor bude hľadať „implicitnú“ hodnotu definovanú v rámci rozsahu.

15) Čo je uzávierka v Scale?

Uzávierka je funkcia, ktorej návratová hodnota závisí od hodnoty premenných deklarovaných mimo funkcie.

16) Čo je Monad v Scale?

Monáda je objekt, ktorý obaľuje ďalší objekt. Miniprogramy Monad, tj. Funkcie, odovzdáte na vykonanie manipulácie s údajmi o podkladovom objekte namiesto priamej manipulácie s objektom. Monad si vyberie, ako použije program na podkladový objekt.

17) Čo je anonymná funkcia Scala?

V zdrojovom kóde sa anonymné funkcie nazývajú „funkčné literály“ a za behu sú funkčné literály inštancované do objektov nazývaných hodnoty funkcií. Scala poskytuje pomerne ľahkú syntax pre definovanie anonymných funkcií.

18) Vysvetlite funkcie „Scala vyššieho rádu“?

Scala umožňuje definíciu funkcií vyššieho rádu. Jedná sa o funkcie, ktoré berú iné funkcie ako parametre, alebo ktorých výsledkom je funkcia. V nasledujúcom príklade funkcia apply () prevezme inú funkciu 'f' a hodnotu 'v' a použije funkciu na v.

Príklad:

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() + "]"
Po zostavení a vykonaní vyššie uvedeného kódu vznikne nasledujúci výsledok.
C:/>scalac Test.scalaC:/>scala Test[10]C:/>

19) Aký je rozdiel medzi var a hodnotou?

V škále môžete premennú definovať pomocou kľúčových slov a, val alebo var. Rozdiel medzi val a var je, var je veľmi podobný deklarácii java, ale val je trochu odlišný. Nemôžeme zmeniť odkaz tak, aby odkazoval na iný odkaz, akonáhle je premenná deklarovaná pomocou val. Premenná definovaná pomocou kľúčových slov var je premenlivá a je možné ju zmeniť niekoľkokrát.

20) Aké sú možnosti, niektoré a žiadne v škále?

„Možnosť“ je všeobecný typ Scala, ktorý môže byť buď „nejaká“ všeobecná hodnota, alebo žiadny. 'Fronta' to často používa na reprezentáciu primitívov, ktoré môžu byť nulové.

21) Ako sa pripojím k zoznamu?

V prípade škály, ktorú chcete pridať do zoznamu, použite „

:+” 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) Ako môžete naformátovať reťazec?

Ak chcete naformátovať reťazec, použite metódu .format (), v škále môžete použiť

Formátovaný formát Val = „% s% i“ .formát (mystring.myInt)

23) Prečo scala uprednostňuje nemennosť?

Scala uprednostňuje v dizajne nemennosť a v mnohých prípadoch ju používa ako predvolenú. Nezmeniteľnosť môže pomôcť pri riešení problémov rovnosti alebo súbežných programov.

24) Aké sú štyri typy identifikátorov Scala?

Štyri typy identifikátorov sú

  • Alfanumerické identifikátory
  • Identifikátory operátora
  • Zmiešané identifikátory
  • Doslovné identifikátory

25) Aké sú rôzne typy literálov Scala?

Existujú rôzne typy literálov v Scale

  • Celočíselné literály
  • Literály s pohyblivou rádovou čiarkou
  • Boolovské literály
  • Literárne symboly
  • Znakové literály
  • Reťazcové literály
  • Viacriadkové struny