Топ 25 на въпросите и отговорите за интервю за Scala (PDF)

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

 

Въпроси и отговори за интервю за Scala за първокурсници

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

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


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

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

👉 Безплатно изтегляне на PDF: Scala Interview Questions & Answers >>


3) Какво е „Scala карта“?

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

Въпроси за интервю за Scala


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

Предимствата на Scala са:

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

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

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

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

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

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

var myVar : Int=0;

val myVal: Int=1;


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

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


8) Какво е рекурсивна опашка в scala?

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


9) Какво е „scala trait“ в scala?

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


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

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

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

Въпроси за интервю за Scala за опитни

11) Какво е Case Classes?

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


12) Каква е употребата на кортежи в scala?

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


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

Curry е техниката за трансформиране на функция, която приема множество аргументи, във функция, която приема един аргумент Много от същите техники като език като 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.scala
C:/>scala Test
[10]
C:/>

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

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


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

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


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

В scala, за да добавите в списък, използвайте „:+” 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) Как можете да форматирате низ?

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

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


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

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


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

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

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

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

Различните типове литерали в scala са

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

Тези въпроси за интервюто също ще ви помогнат във вашата viva (устна)