Top 25 Scala interviewvragen & Antwoorden

Anonim

Download PDF

1) Leg uit wat Scala is?

Scala is een objectfunctionele programmeer- en scripttaal voor algemene softwaretoepassingen die is ontworpen om oplossingen op een beknopte manier uit te drukken.

2) Wat is een 'Scala-set'? Wat zijn methoden waarmee bewerkingssets worden uitgedrukt?

Scala-set is een verzameling paarsgewijze elementen van hetzelfde type. Scala-set bevat geen dubbele elementen. Er zijn twee soorten sets, veranderlijk en onveranderlijk.

3) Wat is een 'Scala-kaart'?

Scala-kaart is een verzameling sleutel- of waardeparen. Op basis van de sleutel kan elke waarde worden opgehaald. Waarden zijn niet uniek, maar sleutels zijn uniek in de kaart.

4) Wat is het voordeel van Scala?

  • Minder foutgevoelige functionele stijl
  • Hoge onderhoudbaarheid en productiviteit
  • Hoge schaalbaarheid
  • Hoge testbaarheid
  • Biedt functies voor gelijktijdige programmering

5) Op welke manieren is Scala beter dan andere programmeertalen?

  • De arrays gebruiken gewone generieke geneesmiddelen, terwijl in andere talen generieke geneesmiddelen als een bijzaak worden toegevoegd en volledig gescheiden zijn, maar overlappend gedrag vertonen met arrays.
  • Scala heeft onveranderlijke "val" als een eerste klas taalkenmerk. De "val" van scala is vergelijkbaar met de eindvariabelen van Java. De inhoud kan muteren, maar de belangrijkste referentie is onveranderlijk.
  • Scala laat 'if blocks', 'for-yield loops' en 'code' tussen accolades een waarde retourneren. Het verdient meer de voorkeur, en elimineert de noodzaak voor een afzonderlijke ternaire operator.
  • Singleton heeft singleton-objecten in plaats van C ++ / Java / C # classic static. Het is een schonere oplossing
  • Aanhoudende onveranderlijke verzamelingen zijn de standaard en zijn ingebouwd in de standaardbibliotheek.
  • Het heeft native tuples en een beknopte code
  • Het heeft geen ketelplaatcode

6) Wat zijn de Scala-variabelen?

Waarden en variabelen zijn twee vormen die in Scala voorkomen. Een waardevariabele is constant en kan na toewijzing niet worden gewijzigd. Het is onveranderlijk, terwijl een reguliere variabele daarentegen veranderlijk is en u de waarde kunt wijzigen.

De twee soorten variabelen zijn

var myVar: Int = 0;

val myVal: Int = 1;

7) Noem het verschil tussen een object en een klasse?

Een klasse is een definitie voor een beschrijving. Het definieert een type in termen van methoden en samenstelling van andere typen. Een klasse is een blauwdruk van het object. Terwijl een object een singleton is, een instantie van een klasse die uniek is. Er wordt een anonieme klasse gemaakt voor elk object in de code, die erft van de klassen die u heeft verklaard om te implementeren.

8) Wat is een recursiestaart in scala?

'Recursie' is een functie die zichzelf aanroept. Een functie die zichzelf bijvoorbeeld een functie 'A' aanroept, roept functie 'B' op, die de functie 'C' aanroept. Het is een techniek die vaak wordt gebruikt bij functioneel programmeren. Om een ​​recursieve staart te krijgen, moet de terugroep naar de functie de laatste functie zijn die moet worden uitgevoerd.

9) Wat is 'scala trait' in scala?

'Traits' worden gebruikt om objecttypen te definiëren die zijn gespecificeerd door de handtekening van de ondersteunde methoden. Scala kan gedeeltelijk worden geïmplementeerd, maar eigenschappen hebben mogelijk geen constructorparameters. Een eigenschap bestaat uit methode en velddefinitie, door ze in klassen te mengen, kan deze worden hergebruikt.

10) Wanneer kun je eigenschappen gebruiken?

Er is geen specifieke regel wanneer u eigenschappen kunt gebruiken, maar er is een richtlijn waarmee u rekening kunt houden.

  • Als het gedrag niet opnieuw wordt gebruikt, maak er dan een concrete klasse van. Het is in ieder geval geen herbruikbaar gedrag.
  • Om er in Java-code van te erven, kan een abstracte klasse worden gebruikt.
  • Als efficiëntie een prioriteit is, neig dan naar het gebruik van een klasse
  • Maak er een eigenschap van als het kan worden hergebruikt in meerdere en niet-gerelateerde klassen. In verschillende delen van de klassenhiërarchie kunnen alleen eigenschappen in verschillende delen worden gemengd.
  • U kunt een abstracte klasse gebruiken als u deze in gecompileerde vorm wilt verspreiden en verwacht dat externe groepen klassen zullen schrijven die ervan erven.

11) Wat zijn casusklassen?

Case-klassen bieden een recursief decompositiemechanisme via patroonvergelijking, het zijn reguliere klassen die hun constructorparameter exporteren. De constructorparameters van case-klassen zijn rechtstreeks toegankelijk en worden behandeld als openbare waarden.

12) Wat is het nut van tuples in scala?

Scala tuples combineren een vast aantal items bij elkaar zodat ze als geheel kunnen worden doorgegeven. Een tuple is onveranderlijk en kan objecten van verschillende typen bevatten, in tegenstelling tot een array of lijst.

13) Wat is functiecurry in Scala?

Currying is de techniek van het transformeren van een functie die meerdere argumenten nodig heeft in een functie die een enkel argument nodig heeft. Veel van dezelfde technieken als taal zoals Haskell en LISP worden ondersteund door Scala. Functiecurry is een van de minst gebruikte en onbegrepen.

14) Wat zijn impliciete parameters in Scala?

Impliciete parameter is de manier waarop parameters van een methode kunnen worden "gevonden". Het is vergelijkbaar met de standaardparameters, maar het heeft een ander mechanisme om de "standaard" -waarde te vinden. De impliciete parameter is een parameter voor een methode of constructor die als impliciet is gemarkeerd. Dit betekent dat als een parameterwaarde niet wordt vermeld, de compiler zal zoeken naar een "impliciete" waarde die binnen een bereik is gedefinieerd.

15) Wat is een sluiting in Scala?

Een sluiting is een functie waarvan de retourwaarde afhangt van de waarde van de variabelen die buiten de functie zijn gedeclareerd.

16) Wat is Monad in Scala?

Een monade is een object dat een ander object omhult. U passeert de Monad-miniprogramma's, dwz functies, om de gegevensmanipulatie van het onderliggende object uit te voeren, in plaats van het object rechtstreeks te manipuleren. Monad kiest hoe het programma op het onderliggende object wordt toegepast.

17) Wat is de anonieme functie van Scala?

In een broncode worden anonieme functies 'function literals' genoemd en tijdens runtime worden function literals geïnstantieerd in objecten die functiewaarden worden genoemd. Scala biedt een relatief eenvoudige syntaxis voor het definiëren van anonieme functies.

18) Verklaar 'Scala hogere orde'-functies?

Scala maakt het mogelijk om functies van een hogere orde te definiëren. Dit zijn functies die andere functies als parameters aannemen, of waarvan het resultaat een functie is. In het volgende voorbeeld heeft de functie apply () een andere functie 'f' en een waarde 'v' en past de functie toe op v.

Voorbeeld:

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() + "]"
Wanneer de bovenstaande code is gecompileerd en uitgevoerd, levert dit het volgende resultaat op.
C:/>scalac Test.scalaC:/>scala Test[10]C:/>

19) Wat is het verschil tussen var en waarde?

In scala kunt u een variabele definiëren met behulp van de trefwoorden a, val of var. Het verschil tussen val en var is, var lijkt veel op java-declaratie, maar val is weinig anders. We kunnen de verwijzing niet wijzigen om naar een andere verwijzing te verwijzen als de variabele eenmaal is gedeclareerd met val. De variabele die is gedefinieerd met behulp van var-sleutelwoorden is veranderlijk en kan een willekeurig aantal keren worden gewijzigd.

20) Wat zijn opties, sommige en geen in scala?

'Optie' is een generiek Scala-type dat óf ‘een of andere’ generieke waarde kan zijn. 'Queue' gebruikt het vaak om primitieven weer te geven die mogelijk nul zijn.

21) Hoe voeg ik toe aan de lijst?

Gebruik in scala om aan een lijst toe te voegen '

:+” 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) Hoe kun je een string opmaken?

Om een ​​string op te maken, gebruik je de .format () methode, in scala kun je deze gebruiken

Val formatted = "% s% i" .format (mystring.myInt)

23) Waarom geeft scala de voorkeur aan onveranderlijkheid?

Scala geeft de voorkeur aan onveranderlijkheid in ontwerp en gebruikt het in veel gevallen als standaard. Onveranderlijkheid kan helpen bij het omgaan met gelijkheidskwesties of gelijktijdige programma's.

24) Wat zijn de vier soorten scala-identificatoren?

De vier soorten ID's zijn

  • Alfanumerieke ID's
  • Operator-ID's
  • Gemengde ID's
  • Letterlijke identificatiegegevens

25) Wat zijn de verschillende soorten Scala-literalen?

De verschillende soorten letterlijke woorden in scala zijn

  • Integer-letterlijke waarden
  • Letterlijke drijvende komma
  • Booleaanse letterlijke tekens
  • Letterlijke symbolen
  • Letterlijke tekens
  • Letterlijke tekenreeksen
  • Multi-Line snaren