25 parimat Scala intervjuuküsimust ja Vastused

Anonim

Laadige alla PDF

1) Selgitage, mis on Scala?

Scala on objektide funktsionaalne programmeerimis- ja skriptikeel üldiste tarkvararakenduste jaoks, mis on mõeldud lahenduste kokkuvõtlikuks väljendamiseks.

2) Mis on „Scala komplekt”? Millised on meetodid, mille kaudu operatsioonikomplekte väljendatakse?

Scala komplekt on sama tüüpi paarikaupa elementide kogum. Scala komplekt ei sisalda duplikaatelemente. On kahte tüüpi komplekte, muutlikud ja muutumatud.

3) Mis on 'Scala kaart'?

Scala kaart on võtme- või väärtuspaaride kogum. Selle võtme põhjal saab välja tuua mis tahes väärtuse. Väärtused pole unikaalsed, kuid võtmed on kaardil unikaalsed.

4) Mis on Scala eelis?

  • Vähem veaohtlikku funktsionaalset stiili
  • Kõrge hooldatavus ja tootlikkus
  • Suur mastaapsus
  • Suur testitavus
  • Pakub samaaegse programmeerimise funktsioone

5) Mil viisil on Scala parem kui muu programmeerimiskeel?

  • Massiivid kasutavad tavalisi geneerilisi aineid, samas kui teises keeles on geneerilised ühendused kinnitatud tagantjärele ja on täiesti eraldiseisvad, kuid nende käitumine massiividega kattub.
  • Scalal on esimese klassi keele funktsioonina muutumatu „val”. Scala “val” sarnaneb Java lõplike muutujatega. Sisu võib muteeruda, kuid ülemine viide on muutumatu.
  • Scala laseb väärtuste tagastamiseks sulgudes sõnad "if block", "for-yield loops" ja "code". See on eelistatavam ja kaob vajadus eraldi kolmepoolse operaatori järele.
  • Singletonil on üksikobjektid, mitte C ++ / Java / C # klassikaline staatiline. See on puhtam lahendus
  • Püsivad muutumatud kogud on vaikimisi ja need on sisse ehitatud tavalisse teeki.
  • Sellel on emakeelsed tuplid ja ülevaatlik kood
  • Sellel pole katla plaadi koodi

6) Millised on Scala muutujad?

Väärtused ja muutujad on Scalas kaks kuju. Väärtusmuutuja on konstantne ja seda ei saa pärast määramist muuta. See on muutumatu, samas kui tavaline muutuja on seevastu muudetav ja saate väärtust muuta.

Need kahte tüüpi muutujad on

var myVar: Int = 0;

val myVal: Int = 1;

7) Kas mainida objekti ja klassi erinevust?

Klass on kirjelduse määratlus. See määratleb tüübi meetodite ja muude tüüpide koostise järgi. Klass on objekti plaan. Kuigi objekt on singlett, ainulaadne klassi eksemplar. Anonüümne klass luuakse igale koodi objektile, see pärib kõigist klassidest, mille olete deklareerinud objekti rakendamiseks.

8) Mis on skala rekursioonisaba?

'Rekursioon' on funktsioon, mis kutsub ennast. Funktsioon, mis kutsub ennast näiteks funktsiooniks A, kutsub funktsiooni B, mis kutsub funktsiooni C. See on tehnika, mida kasutatakse funktsionaalses programmeerimises sageli. Saba rekursiivseks saamiseks peab funktsiooni tagasihelistamine olema viimane täidetav funktsioon.

9) Mis on scala omadus?

'Tunnuseid' kasutatakse objektitüüpide määratlemiseks, mis on määratud toetatud meetodite allkirjaga. Scala võimaldab osaliselt rakendada, kuid tunnustel ei pruugi olla konstruktori parameetreid. Tunnus koosneb meetodist ja valdkonna määratlusest, neid klassidesse segades saab seda uuesti kasutada.

10) Millal saab omadusi kasutada?

Tunnuste kasutamiseks pole konkreetset reeglit, kuid on olemas juhend, mida võite kaaluda.

  • Kui käitumist enam ei kasutata, siis tehke sellest konkreetne klass. Igatahes pole see korduvkasutatav käitumine.
  • Sellest Java-koodis pärimiseks võib kasutada abstraktset klassi.
  • Kui efektiivsus on esmatähtis, siis kalduge klassi kasutamise poole
  • Tehke sellest omadus, kui seda võidakse uuesti kasutada mitmetes ja mitteseotud klassides. Klasside hierarhia erinevates osades saab erinevateks osadeks segada ainult tunnuseid.
  • Võite kasutada abstraktset klassi, kui soovite seda kompileeritud kujul levitada ja eeldate, et rühmad väljastpoolt kirjutavad sellest pärivad klassid.

11) Mis on juhtumiklassid?

Juhtumiklassid pakuvad mustrite sobitamise kaudu rekursiivset lagunemismehhanismi, see on tavaline klass, mis ekspordib oma konstruktori parameetri. Juhtumiklasside konstruktori parameetritele pääseb otse juurde ja neid käsitletakse avalike väärtustena.

12) Mis on skalade kasutamine paaris?

Scala tuplid ühendavad kindla arvu esemeid omavahel, nii et neid saab tervikuna edasi anda. Tuple on muutmatu ja mahutab erinevalt massiivist või loendist erinevat tüüpi objekte.

13) Mis on funktsiooni karrierimine Scalas?

Karrierimine on mitme argumendi viiva funktsiooni teisendamise funktsioon funktsiooniks, mis võtab ühe argumendi. Scala toetab paljusid samu tehnikaid nagu keel nagu Haskell ja LISP. Funktsioonide karrierimine on üks kõige vähem kasutatud ja valesti mõistetud.

14) Mis on Scalas kaudsed parameetrid?

Kaudne parameeter on viis, mis võimaldab meetodi parameetreid "leida". See sarnaneb vaikeparameetritega, kuid sellel on vaikimisi väärtuse leidmiseks erinev mehhanism. Kaudne parameeter on meetodi või konstruktori parameeter, mis on märgitud implitsiitseks. See tähendab, et kui parameetri väärtust ei mainita, otsib kompilaator "kaudset" väärtust, mis on määratletud vahemikus.

15) Mis on sulgemine Scalas?

Sulgemine on funktsioon, mille tagastusväärtus sõltub väljaspool funktsiooni deklareeritud muutujate väärtusest.

16) Mis on Monad Scalas?

Monaad on objekt, mis ümbritseb teist eset. Minadi-programmid Monad ehk funktsioonid läbite alusobjektiga andmete manipuleerimise asemel, et objektiga otse manipuleerida. Monad valib, kuidas programmi alusobjektile rakendada.

17) Mis on Scala anonüümne funktsioon?

Lähtekoodis nimetatakse anonüümseid funktsioone funktsiooni literaalideks ja käitamise ajal instantsitakse funktsiooniliitrid objektideks, mida nimetatakse funktsiooni väärtusteks. Scala pakub anonüümsete funktsioonide määratlemiseks suhteliselt lihtsat süntaksi.

18) Selgitage 'Scala kõrgema järgu' funktsioone?

Scala võimaldab määratleda kõrgema järgu funktsioone. Need on funktsioonid, mis võtavad parameetritena muid funktsioone või mille tulemus on funktsioon. Järgmises näites võtab funktsioon () funktsioon teise funktsiooni 'f' ja väärtuse 'v' ning rakendab funktsiooni v-le.

Näide:

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() + "]"
Kui ülaltoodud kood on kompileeritud ja täidetud, annab see järgmise tulemuse.
C:/>scalac Test.scalaC:/>scala Test[10]C:/>

19) Mis vahe on var ja väärtus?

Scalas saate muutuja määratleda kas märksõnade a, val või var abil. Erinevus val ja var vahel on, var sarnaneb java deklaratsiooniga, kuid val erineb vähe. Kui muutuja on deklareeritud val abil, ei saa me viidet teisele viidata. Var-märksõnade abil määratletud muutuja on muudetav ja seda saab muuta mitu korda.

20) Mis on skala variant, mõned ja mitte ükski?

'Option' on üldine Scala tüüp, mis võib olla kas mõni üldine väärtus või mitte. 'Järjekord' kasutab seda sageli primitiivide tähistamiseks, mis võivad olla nullid.

21) Kuidas loendisse lisada?

Loendis lisamiseks kasutage skalas teksti

:+” 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) Kuidas saab stringi vormindada?

Stringi vormindamiseks kasutage meetodit .format (), scalas saate seda kasutada

Val vormindatud = "% s% i" .formaat (mystring.myInt)

23) Miks eelistab scala muutumatust?

Scala eelistab disainis muutumatust ja kasutab seda paljudel juhtudel vaikimisi. Muutmatus võib aidata võrdõiguslikkuse probleemide või samaaegsete programmide käsitlemisel.

24) Mis on nelja tüüpi skalaidentifikaatorid?

Neli tüüpi tunnuseid on

  • Tähtnumbrilised identifikaatorid
  • Operaatori identifikaatorid
  • Segatähised
  • Sõnasõnalised identifikaatorid

25) Mis on Scala-literaalide erinevad tüübid?

Eri tüüpi literaalid skalas on

  • Literaalide täisarv
  • Ujukoma literaalid
  • Boolean-literaalid
  • Sümbol-literaalid
  • Tähemärki literaalid
  • String literaalid
  • Mitmerealised stringid