Stáhnout PDF
1) Vysvětlete, co je Scala?
Scala je objektový programovací a skriptovací jazyk pro obecné softwarové aplikace navržený pro stručné vyjádření řešení.
2) Co je to „Scala set“? Jaké jsou metody, kterými se vyjadřují sady operací?
Sada Scala je kolekce párových prvků stejného typu. Sada Scala neobsahuje žádné duplicitní prvky. Existují dva druhy sad, proměnlivé a neměnné.
3) Co je to „mapa Scala“?
Scala mapa je kolekce párů klíčů nebo hodnot. Na základě jeho klíče lze načíst jakoukoli hodnotu. Hodnoty nejsou jedinečné, ale klíče jsou v mapě jedinečné.
4) Jaká je výhoda Scaly?
- Méně náchylný na funkční styl
- Vysoká udržovatelnost 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é generiky, zatímco v jiném jazyce jsou generiky přišroubovány jako dodatečný nápad a jsou zcela oddělené, ale mají překrývající se chování s poli.
- Scala má neměnný „val“ jako prvotřídní jazykovou funkci. „Val“ scala je podobný finálním proměnným Java. Obsah může mutovat, ale horní reference je neměnná.
- Scala umožňuje vrácení hodnoty „if blocks“, „for-yield loops“ a „code“ v závorkách. Je to výhodnější a eliminuje se potřeba samostatného ternárního operátoru.
- Singleton má spíše singleton objekty než C ++ / Java / C # classic static. Je to čistší řešení
- Trvalé neměnné sbírky jsou výchozí a jsou zabudovány do standardní knihovny.
- Má nativní n-tice a stručný kód
- Nemá kód kotlové desky
6) Co jsou proměnné Scala?
Hodnoty a proměnné jsou dva tvary, které přicházejí ve Scale. 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ěnlivá a můžete změnit jeho 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 popisu. Definuje typ z hlediska metod a složení jiných typů. Třída je plán objektu. While, an object is a singleton, an instance of a class which is unique. Anonymní třída je vytvořena pro každý objekt v kódu, dědí z jakýchkoli tříd, které jste deklarovali objekt k implementaci.
8) Co je ocas rekurze ve scale?
„Rekurze“ je funkce, která si říká sama. Funkce, která se sama nazývá, například funkce „A“ volá funkci „B“, která volá funkci „C“. Je to technika často používaná ve funkčním programování. Aby byla koncová rekurzivní, musí být zpětné volání funkce poslední provedenou funkcí.
9) Co je to „scala vlastnost“ ve scale?
„Vlastnosti“ se používají k definování typů objektů určených podpisem podporovaných metod. Scala umožňuje částečně implementovat, ale vlastnosti nemusí mít parametry konstruktoru. Znak se skládá z definice metody a pole a jejich smícháním do tříd je lze znovu použít.
10) Kdy můžete použít vlastnosti?
Neexistuje žádné konkrétní pravidlo, kdy můžete použít vlastnosti, 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. Každopádně se nejedná o opakovaně použitelné chování.
- Aby bylo možné z něj dědit v kódu Java, lze použít abstraktní třídu.
- Pokud je prioritou efektivita, přikloňte se k používání třídy
- Udělejte z něj vlastnost, pokud může být znovu použit 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.
- Můžete použít abstraktní třídu, pokud ji chcete distribuovat v kompilované podobě a očekáváte, že vnější skupiny budou psát třídy zděděné z ní.
11) Co jsou třídy případů?
Třídy případů poskytují rekurzivní mechanismus rozkladu pomocí porovnávání vzorů, jedná se o běžné třídy, které exportují svůj konstruktorový parametr. K parametrům konstruktoru tříd případů lze přistupovat přímo a jsou považovány za veřejné hodnoty.
12) Jaké je použití n-tic ve scale?
Scalové n-tice kombinují pevný počet položek dohromady, takže je lze předávat jako celek. Tuple je neměnná a může obsahovat objekty různých typů, na rozdíl od pole nebo seznamu.
13) Co je to kari funkce ve Scale?
Currying je technika transformace funkce, která přebírá více argumentů na funkci, která přebírá jediný argument. Scala podporuje mnoho stejných technik jako jazyk jako Haskell a LISP. Funkční kari je jedním z nejméně používaných a nepochopených.
14) Jaké jsou implicitní parametry ve Scale?
Implicitní parametr je způsob, který umožňuje „najít“ parametry metody. Je to podobné jako výchozí parametry, 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, pak kompilátor vyhledá „implicitní“ hodnotu definovanou v rámci oboru.
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?
Monad je objekt, který obklopuje jiný objekt. Miniprogramům Monad, tj. Funkcím, předáte manipulaci s daty podkladového objektu namísto přímé manipulace s objektem. Monad zvolí, jak použít program na podkladový objekt.
17) Co je anonymní funkce Scala?
Ve zdrojovém kódu se anonymní funkce nazývají 'funkční literály' a za běhu jsou funkční literály instancová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 jiné funkce jako parametry, nebo jejichž výsledkem je funkce. V následujícím příkladu funkce apply () přebírá jinou funkci 'f' a hodnotu 'v' a použije 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 kompilován a spuštěn, vytvoří následující výsledek.
C:/>scalac Test.scalaC:/>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, var je velmi podobný deklaraci java, ale val se trochu liší. Nemůžeme změnit odkaz tak, aby odkazoval na jiný odkaz, jakmile je proměnná deklarována pomocí val. Proměnná definovaná pomocí klíčových slov var je proměnlivá a lze ji libovolněkrát změnit.
20) Jaké jsou možnosti, některé a žádné ve škále?
„Možnost“ je obecný typ Scala, který může být buď „nějaká“ obecná hodnota, nebo žádný. „Fronta“ ji často používá k reprezentaci primitiv, které mohou mít hodnotu null.
21) Jak se připojím k seznamu?
V případě Scaly, kterou chcete přidat do seznamu, použijte „
:+” 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) Jak můžete formátovat řetězec?
Chcete-li formátovat řetězec, použijte metodu .format (), ve škále 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?
Čtyři typy identifikátorů jsou
- Alfa číselné identifikátory
- Identifikátory operátora
- Smíšené identifikátory
- Doslovné identifikátory
25) Jaké jsou různé typy literálů Scala?
Různé typy literálů v scala jsou
- Celočíselné literály
- Literály s plovoucí desetinnou čárkou
- Booleovské literály
- Symbolové literály
- Znakové literály
- Řetězcové literály
- Víceřádkové řetězce