Топ 25 въпроса за интервю за Scala & Отговори

Anonim

Изтеглете PDF

1) Обяснете какво е Scala?

Scala е обектно-функционален език за програмиране и скриптове за общи софтуерни приложения, предназначени да изразяват решения по кратък начин.

2) Какво представлява „набор от скала“? Какви са методите, чрез които се изразяват набори от операции?

Набор Scala е колекция от двойни елементи от същия тип. Наборът Scala не съдържа дублиращи се елементи. Има два вида набори, променливи и неизменни.

3) Какво представлява „карта Scala“?

Картата Scala е колекция от двойки ключ или стойност. Въз основа на неговия ключ всяка стойност може да бъде извлечена. Стойностите не са уникални, но ключовете са уникални в картата.

4) Какво е предимството на Scala?

  • По-малко склонни към грешки функционален стил
  • Висока поддръжка и производителност
  • Висока скалируемост
  • Висока тестваемост
  • Осигурява функции на едновременно програмиране

5) По какви начини Scala е по-добра от другия език за програмиране?

  • Масивите използват редовни генерични средства, докато на друг език генеричните продукти се включват като допълнителна мисъл и са напълно отделни, но имат припокриващи се поведения с масиви.
  • Scala има неизменна “val” като първокласна езикова функция. „Валът“ на скалата е подобен на крайните променливи на Java. Съдържанието може да мутира, но горната референция е неизменна.
  • Scala позволява "if blocks", "for-yield loops" и "code" в скоби, за да върне стойност. Той е по-предпочитан и елиминира необходимостта от отделен троен оператор.
  • Singleton има единични обекти, а не C ++ / Java / C # classic static. Това е по-чисто решение
  • Постоянните неизменяеми колекции са по подразбиране и са вградени в стандартната библиотека.
  • Той има местни кортежи и кратък код
  • Той няма код на бойлер

6) Какви са променливите Scala?

Стойностите и променливите са две форми, които се предлагат в Scala. Променливата на стойността е постоянна и не може да се променя, след като бъде присвоена. Той е неизменим, докато обикновената променлива, от друга страна, е изменяема и можете да промените стойността.

Двата типа променливи са

var myVar: Int = 0;

val myVal: Int = 1;

7) Споменете разликата между обект и клас?

Класът е дефиниция за описание. Той определя тип от гледна точка на методи и състав на други видове. Класът е план на обекта. Докато обектът е единичен, екземпляр на клас, който е уникален. Анонимен клас се създава за всеки обект в кода, той наследява от всички класове, които сте декларирали за обект за изпълнение.

8) Какво представлява рекурсивната опашка в скалата?

„Рекурсия“ е функция, която се самоизвиква. Функция, която се извиква, например, функция „A“ извиква функция „B“, която извиква функцията „C“. Това е техника, използвана често във функционалното програмиране. За да има рекурсивна опашка, извикването на функцията трябва да е последната изпълнена функция.

9) Какво представлява „скала черта“ в скала?

'Traits' се използват за дефиниране на типове обекти, посочени от подписа на поддържаните методи. Scala позволява частично изпълнение, но чертите може да нямат конструкторски параметри. Характеристика се състои от дефиниция на метод и поле, чрез смесването им в класове може да се използва повторно.

10) Кога можете да използвате черти?

Няма конкретно правило, когато можете да използвате черти, но има насока, която можете да вземете предвид.

  • Ако поведението няма да бъде използвано повторно, направете го конкретен клас. Във всеки случай това не е поведение за многократна употреба.
  • За да се наследи от него в Java код, може да се използва абстрактен клас.
  • Ако ефективността е приоритет, наклонете се към използването на клас
  • Направете го черта, ако може да се използва повторно в множество и несвързани класове. В различни части на йерархията на класовете само черти могат да се смесват в различни части.
  • Можете да използвате абстрактния клас, ако искате да го разпространявате в компилирана форма и очаквате външни групи да напишат класове, наследени от него.

11) Какво представляват класовете дела?

Класовете на случаите осигуряват рекурсивен механизъм за разлагане чрез съвпадение на шаблони, това са редовни класове, които експортират своя параметър конструктор. Параметрите на конструктора на класовете случаи могат да бъдат достъпни директно и се третират като публични стойности.

12) Каква е ползата от кортежи в скалата?

Корпусите Scala комбинират фиксиран брой елементи заедно, така че да могат да се предават като цяло. Кортежът е неизменим и може да съдържа обекти с различни типове, за разлика от масив или списък.

13) Какво представлява функцията currying в Scala?

Currying е техниката за трансформиране на функция, която приема множество аргументи във функция, която приема един аргумент. Много от същите техники като езика като Haskell и LISP се поддържат от Scala. Функцията currying е една от най-малко използваните и неразбрани.

14) Какви са неявните параметри в Scala?

Имплицитният параметър е начинът, който позволява да бъдат „намерени“ параметри на метод. Той е подобен на параметрите по подразбиране, но има различен механизъм за намиране на стойността по подразбиране. Неявният параметър е параметър за метод или конструктор, който е маркиран като неявен. Това означава, че ако стойност на параметър не е спомената, тогава компилаторът ще търси „неявна“ стойност, дефинирана в обхвата.

15) Какво представлява затварянето в Scala?

Затварянето е функция, чиято възвръщаема стойност зависи от стойността на променливите, декларирани извън функцията.

16) Какво е Monad в Scala?

Монадата е обект, който обвива друг обект. Предавате мини-програмите Monad, т.е. функции, за да извършите манипулация на данните на основния обект, вместо да манипулирате директно обекта. Monad избира как да приложи програмата към основния обект.

17) Какво представлява анонимната функция на Scala?

В изходния код анонимните функции се наричат ​​„функционални литерали“ и по време на изпълнение, функционалните литерали се инстанцират в обекти, наречени функционални стойности. Scala осигурява относително лесен синтаксис за дефиниране на анонимни функции.

18) Обяснете функциите на Scala от по-висок ред?

Scala позволява дефинирането на функции от по-висок ред. Това са функции, които приемат други функции като параметри или чийто резултат е функция. В следващия пример функцията apply () приема друга функция 'f' и стойност 'v' и прилага функцията към v.

Пример:

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() + "]"
Когато горният код се компилира и изпълни, той дава следния резултат.
C:/>scalac Test.scalaC:/>scala Test[10]C:/>

19) Каква е разликата между var и value?

В скалата можете да дефинирате променлива, като използвате ключови думи a, val или var. Разликата между val и var е, че var е много подобна на Java декларацията, но val е малко по-различна. Не можем да променим препратката, за да насочва към друга препратка, след като променливата бъде декларирана с помощта на val. Променливата, дефинирана с ключови думи var, може да се променя и може да се променя произволен брой пъти.

20) Какви са опциите, някои и никакви в скала?

„Опция“ е родов тип на Scala, който може да бъде „някаква“ родова стойност или никаква. 'Queue' често го използва за представяне на примитиви, които може да са нулеви.

21) Как да се добавя към списъка?

В скалата за добавяне в списък използвайте „

:+” 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) Как можете да форматирате низ?

За да форматирате низ, използвайте метода .format (), в скала, който можете да използвате

Формат на Val = "% s% i" .format (mystring.myInt)

23) Защо скалата предпочита неизменността?

Scala предпочита неизменността в дизайна и в много случаи я използва по подразбиране. Неизменността може да помогне, когато се занимавате с въпроси на равенството или едновременни програми.

24) Какви са четирите типа идентификатори на скала?

Четирите типа идентификатори са

  • Буквено-цифрови идентификатори
  • Идентификатори на оператора
  • Смесени идентификатори
  • Буквални идентификатори

25) Какви са различните видове литерали Scala?

Различните видове литерали в скалата са

  • Целочислени литерали
  • Буквали с плаваща запетая
  • Булеви литерали
  • Символни литерали
  • Символни литерали
  • Струнни литерали
  • Многоредови низове