25 лучших вопросов и ответов на собеседовании по Scala (PDF)
Вот вопросы и ответы на собеседовании в Scala как для новичков, так и для опытных кандидатов, желающих получить работу своей мечты.
Вопросы и ответы на собеседовании по Scala для первокурсников
1) Объясните, что такое Scala?
Scala — это объектно-функциональное программирование и язык сценариев для общих программных приложений, предназначенный для краткого выражения решений.
2) Что такое «набор Scala»? Каковы методы выражения наборов операций?
Набор Scala — это набор попарных элементов одного типа. Набор Scala не содержит повторяющихся элементов. Существует два типа наборов: изменяемые и неизменяемые.
👉 Бесплатная загрузка PDF-файла: Вопросы и ответы для интервью по Scala >>
3) Что такое «карта Scala»?
Карта Scala — это набор пар ключей или значений. На основе его ключа можно получить любое значение. Значения не уникальны, но ключи на карте уникальны.
4) В чем преимущество Scala?
Преимущества масштаб составляют:
- Less подверженный ошибкам функциональный стиль
- Высокая ремонтопригодность и производительность
- Высокая масштабируемость
- Высокая проверяемость
- Предоставляет функции параллельного программирования.
5) Чем Scala лучше других языков программирования?
- В массивах используются обычные дженерики, в то время как на других языках дженерики привязываются в последнюю очередь и являются полностью отдельными, но имеют перекрывающееся поведение с массивами.
- В Scala есть неизменяемая «val» как первоклассная функция языка. «Вал» в scala похож на Java конечные переменные. Содержимое может изменяться, но верхняя ссылка остается неизменной.
- Scala позволяет использовать «блоки if», «циклы for-yield» и «код» в фигурных скобках для возврата значения. Это более предпочтительно и устраняет необходимость в отдельном тернарном операторе.
- В Singleton есть одиночные объекты, а не C++/Java/ C# классический статический. Это более чистое решение
- Постоянные неизменяемые коллекции используются по умолчанию и встроены в стандартную библиотеку.
- Он имеет собственные кортежи и краткий код.
- У него нет кода котла
6) Что такое переменные Scala?
Ценности и переменные — это две фигуры, которые есть в Scala. Переменная-значение является постоянной и не может быть изменена после присвоения. Она неизменяема, тогда как обычная переменная, напротив, изменяема, и вы можете изменить ее значение.
Два типа переменных:
var myVar : Int=0;
val myVal: Int=1;
7) Укажите разницу между объектом и классом?
Класс — это определение описания. Он определяет тип с точки зрения методов и композиции других типов. Класс — это проект объекта. В то время как объект является синглтоном, уникальным экземпляром класса. Анонимный класс создается для каждого объекта в коде, он наследуется от любых классов, которые вы объявили для реализации объекта.
8) Что такое хвост рекурсии в Scala?
«Рекурсия» — это функция, которая вызывает сама себя. Функция, которая вызывает сама себя, например, функция «А» вызывает функцию «Б», которая вызывает функцию «С». Этот метод часто используется в функциональном программировании. Для хвостовой рекурсии обратный вызов функции должен быть последней выполняемой функцией.
9) Что такое «черта Scala» в Scala?
«Признаки» используются для определения типов объектов, определяемых сигнатурой поддерживаемых методов. Scala допускает частичную реализацию, но типажи могут не иметь параметров конструктора. Признак состоит из определения метода и поля; смешивая их в классы, его можно использовать повторно.
10) Когда можно использовать черты характера?
Не существует конкретного правила, когда вы можете использовать черты, но есть рекомендации, которые вы можете принять во внимание.
- Если поведение не будет использоваться повторно, сделайте его конкретным классом. В любом случае это не многоразовое поведение.
- Чтобы наследовать от него в Java коде можно использовать абстрактный класс.
- Если эффективность является приоритетом, склоняйтесь к использованию класса
- Сделайте это чертой, если ее можно будет повторно использовать в нескольких несвязанных классах. В разных частях иерархии классов в разные части могут смешиваться только черты.
- Вы можете использовать абстрактный класс, если хотите распространять его в скомпилированном виде и ожидаете, что внешние группы напишут унаследованные от него классы.
Вопросы для собеседования по Scala для опытных
11) Что такое классы случаев?
Классы Case предоставляют механизм рекурсивной декомпозиции посредством сопоставления с образцом. Это обычные классы, которые экспортируют свой параметр конструктора. К параметрам конструктора регистровых классов можно получить прямой доступ, и они рассматриваются как общедоступные значения.
12) Какая польза от кортежей в Scala?
Кортежи Scala объединяют фиксированное количество элементов вместе, чтобы их можно было передавать как единое целое. Кортеж является неизменяемым и может содержать объекты разных типов, в отличие от массива или списка.
13) Что такое каррирование функций в Scala?
Каррирование — это метод преобразования функции, принимающей несколько аргументов, в функцию, принимающую один аргумент. Многие из тех же методов, что и такие языки, как Haskell и LISP, поддерживаются Scala. Каррирование функций — одно из наименее используемых и неправильно понимаемых.
14) Что такое неявные параметры в Scala?
Неявный параметр — это способ, позволяющий «найти» параметры метода. Он похож на параметры по умолчанию, но имеет другой механизм поиска значения «по умолчанию». Неявный параметр — это параметр метода или конструктора, помеченный как неявный. Это означает, что если значение параметра не упоминается, компилятор будет искать «неявное» значение, определенное в области видимости.
15) Что такое замыкание в Scala?
Замыкание — это функция, возвращаемое значение которой зависит от значения переменных, объявленных вне функции.
16) Что такое Монада в Scala?
Монада — это объект, который обертывает другой объект. Вы передаете мини-программы 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?
«Option» — это универсальный тип Scala, который может быть либо «некоторым» универсальным значением, либо отсутствовать. «Очередь» часто использует его для представления примитивов, которые могут иметь значение NULL.
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?
Четыре типа идентификаторов:
- Буквенно-цифровые идентификаторы
- Operaидентификаторы Tor
- Смешанные идентификаторы
- Литеральные идентификаторы
25) Каковы различные типы литералов Scala?
Различные типы литералов в Scala:
- Целочисленные литералы
- Литералы с плавающей запятой
- Логические литералы
- Символьные литералы
- Символьные литералы
- Строковые литералы
- Многострочные строки
Эти вопросы для собеседования также помогут вам в устной речи.