25 nejčastějších otázek a odpovědí v rozhovoru se Scala (PDF)
Zde jsou otázky a odpovědi na pohovor Scala pro čerstvější i zkušené kandidáty, aby získali svou vysněnou práci.
Otázky a odpovědi na pohovor Scala pro Freshers
1) Vysvětlete, co je Scala?
Scala je objektově funkcionální programovací a skriptovací jazyk pro obecné softwarové aplikace určený k vyjádření řešení stručným způsobem.
2) Co je to „sada Scala“? Jaké jsou metody, kterými jsou vyjádřeny operační sady?
Sada Scala je sbírka párových prvků stejného typu. Sada Scala neobsahuje žádné duplicitní prvky. Existují dva druhy množin, proměnlivé a neměnné.
👉 Zdarma ke stažení PDF: Otázky a odpovědi v rozhovoru se Scala >>
3) Co je to „mapa Scala“?
Scala mapa je sbírka párů klíčů nebo hodnot. Na základě jeho klíče lze získat jakoukoli hodnotu. Hodnoty nejsou jedinečné, ale klíče jsou v mapě jedinečné.
4) Jaká je výhoda Scala?
Výhody Scala jsou:
- Less funkční styl náchylný k chybám
- Vysoká údržba a produktivita
- Vysoká škálovatelnost
- Vysoká testovatelnost
- Poskytuje funkce souběžného programování
5) V čem je Scala lepší než jiný programovací jazyk?
- Pole používají běžná generika, zatímco v jiném jazyce jsou generika přišroubována jako dodatečná myšlenka a jsou zcela oddělená, ale mají překrývající se chování s poli.
- Scala má neměnné „val“ jako prvotřídní jazykový rys. „Val“ scaly je podobný Java konečné proměnné. Obsah se může změnit, ale horní odkaz je neměnný.
- Scala umožňuje 'if blocky', 'for-yield loops' a 'code' ve složených závorkách, aby vrátily hodnotu. Je výhodnější a eliminuje potřebu samostatného ternárního operátora.
- Singleton má objekty singleton spíše než C++/Java/ C# klasický statický. Je to čistší řešení
- Trvalé neměnné kolekce jsou výchozí a zabudované do standardní knihovny.
- Má nativní n-tice a stručný kód
- Nemá kód štítku kotle
6) Co jsou proměnné Scala?
Hodnoty a proměnné jsou dva tvary, které přicházejí v Scala. Hodnotová proměnná je konstantní a po přiřazení ji nelze změnit. Je neměnná, zatímco běžná proměnná je naopak proměnná a můžete změnit hodnotu.
Jsou to dva typy proměnných
var myVar : Int=0;
val myVal: Int=1;
7) Uveďte rozdíl mezi objektem a třídou?
Třída je definice pro popis. Definuje typ z hlediska metod a složení ostatních typů. Třída je plán objektu. Zatímco objekt je singleton, instance třídy, která je jedinečná. Pro každý objekt v kódu je vytvořena anonymní třída, která dědí z jakýchkoli tříd, které jste deklarovali jako objekt k implementaci.
8) Co je to rekurzivní chvost ve scale?
'Rekurze' je funkce, která volá sama sebe. Funkce, která volá sama sebe, například funkce 'A' volá funkci 'B', která volá funkci 'C'. Je to technika často používaná ve funkcionálním programování. Aby byla rekurzivní koncová část, volání zpět funkce musí být poslední funkcí, která se má provést.
9) Co je to 'scala trait' ve scale?
'Vlastnosti' se používají k definování typů objektů specifikovaných podpisem podporovaných metod. Scala umožňuje částečnou implementaci, ale vlastnosti nemusí mít parametry konstruktoru. Vlastnost se skládá z definice metody a pole, jejich smícháním do tříd lze znovu použít.
10) Kdy můžete použít vlastnosti?
Neexistuje žádné konkrétní pravidlo, kdy můžete vlastnosti používat, ale existuje vodítko, které můžete zvážit.
- Pokud chování nebude znovu použito, udělejte z něj konkrétní třídu. V žádném případě se nejedná o opakovaně použitelné chování.
- Aby se z ní v Java kódu, lze použít abstraktní třídu.
- Pokud je prioritou efektivita, přikloňte se k použití třídy
- Udělejte z toho vlastnost, pokud by mohla být znovu použita ve více a nesouvisejících třídách. V různých částech hierarchie tříd lze do různých částí smíchat pouze vlastnosti.
- Abstraktní třídu můžete použít, pokud ji chcete distribuovat v kompilované podobě a očekáváte, že vnější skupiny budou psát třídy, které z ní dědí.
Otázky k pohovoru Scala pro zkušené
11) Co jsou třídy případů?
Třídy Case poskytují mechanismus rekurzivní dekompozice prostřednictvím porovnávání vzorů, jsou to běžné třídy, které exportují svůj parametr konstruktoru. Parametry konstruktoru tříd případů jsou přístupné přímo a jsou považovány za veřejné hodnoty.
12) K čemu slouží n-tice ve scale?
Scala n-tice kombinují pevně stanovený počet položek dohromady, takže je lze předat jako celek. N-tice je neměnná a může obsahovat objekty různých typů, na rozdíl od pole nebo seznamu.
13) Co je funkce currying ve Scale?
Currying je technika transformace funkce, která přebírá více argumentů, na funkci, která přebírá jeden argument Mnoho stejných technik jako jazyk jako Haskell a LISP podporuje Scala. Funkce currying je jednou z nejméně používaných a nepochopených.
14) Jaké jsou implicitní parametry ve Scale?
Implicitní parametr je způsob, který umožňuje „nalézt“ parametry metody. Je podobný výchozím parametrům, ale má jiný mechanismus pro nalezení „výchozí“ hodnoty. Implicitní parametr je parametr metody nebo konstruktoru, který je označen jako implicitní. To znamená, že pokud není uvedena hodnota parametru, kompilátor bude hledat „implicitní“ hodnotu definovanou v rozsahu.
15) Co je to uzavření ve Scale?
Uzávěr je funkce, jejíž návratová hodnota závisí na hodnotě proměnných deklarovaných mimo funkci.
16) Co je Monad ve Scale?
Monáda je předmět, který obaluje jiný předmět. Miniprogramy Monad, tj. funkce, předáte k provádění manipulace s daty základního objektu namísto přímé manipulace s objektem. Monad volí, jak aplikovat program na základní objekt.
17) Co je anonymní funkce Scala?
Ve zdrojovém kódu se anonymní funkce nazývají „literály funkcí“ a za běhu jsou literály funkcí konkretizovány do objektů nazývaných hodnoty funkcí. Scala poskytuje relativně snadnou syntaxi pro definování anonymních funkcí.
18) Vysvětlete funkce „Scala vyššího řádu“?
Scala umožňuje definici funkcí vyššího řádu. Jedná se o funkce, které berou jako parametry jiné funkce nebo jejichž výsledkem je funkce. V následujícím příkladu funkce apply () převezme jinou funkci 'f' a hodnotu 'v' a aplikuje funkci na v.
Pří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() + "]"
Když je výše uvedený kód zkompilován a spuštěn, vytvoří následující výsledek.
C:/>scalac Test.scala C:/>scala Test [10] C:/>
19) Jaký je rozdíl mezi var a hodnotou?
Ve scala můžete definovat proměnnou pomocí klíčových slov a, val nebo var. Rozdíl mezi val a var je, že var je hodně jako deklarace java, ale val se trochu liší. Nemůžeme změnit odkaz tak, aby ukazoval na jiný odkaz, jakmile je proměnná deklarována pomocí val. Proměnné definované pomocí klíčových slov var jsou proměnlivé a lze je měnit libovolněkrát.
20) Jaké jsou možnosti, některé a žádné ve scala?
'Option' je obecný typ Scala, který může být buď 'nějaká' generická hodnota, nebo žádná. 'Queue' jej často používá k reprezentaci primitiv, která mohou být nulová.
21) Jak mohu přidat do seznamu?
Ve scala pro připojení do seznamu použijte „:+” single value
var myList = List.empty[String] myList :+= "a" myList :+= "b" myList :+= "c" use++ for appending a list var myList = List.empty[String] myList ++= List("a", "b", "c")
22) Jak můžete formátovat řetězec?
Chcete-li formátovat řetězec, použijte metodu .format (), ve scala můžete použít
Val formatted= “%s %i”.format (mystring.myInt)
23) Proč scala preferuje neměnnost?
Scala preferuje neměnnost v designu a v mnoha případech ji používá jako výchozí. Neměnnost může pomoci při řešení problémů rovnosti nebo souběžných programů.
24) Jaké jsou čtyři typy identifikátorů scala?
Jsou to čtyři typy identifikátorů
- Alfanumerické identifikátory
- Operator identifikátory
- Smíšené identifikátory
- Doslovné identifikátory
25) Jaké jsou různé typy literálů Scala?
Různé typy literálů ve scala jsou
- Celočíselné literály
- Literály s pohyblivou řádovou čárkou
- Booleovské literály
- Symbolové literály
- Znakové literály
- Řetězcové literály
- Víceřádkové struny
Tyto otázky na pohovoru také pomohou ve vašem životě (ústních)