상위 25개 Scala 인터뷰 질문 및 답변(PDF)

꿈의 직업을 얻기 위한 신입 지원자와 경험 많은 지원자를 위한 Scala 인터뷰 질문과 답변은 다음과 같습니다.

 

신입생을 위한 Scala 인터뷰 질문 및 답변

1) 스칼라란 무엇인지 설명해주세요.

Scala는 간결한 방식으로 솔루션을 표현하도록 설계된 일반 소프트웨어 애플리케이션을 위한 객체 기능 프로그래밍 및 스크립팅 언어입니다.


2) '스칼라 세트'란 무엇인가? 연산 세트를 표현하는 방법은 무엇인가?

스칼라 세트는 같은 유형의 쌍별 요소 컬렉션입니다. 스칼라 세트에는 중복 요소가 없습니다. 가변 세트와 불변 세트의 두 가지 종류가 있습니다.

👉 무료 PDF 다운로드: Scala 인터뷰 질문 및 답변 >>


3) '스칼라 맵'이란 무엇입니까?

스칼라 맵은 키 또는 값 쌍의 모음입니다. 해당 키를 기반으로 모든 값을 검색할 수 있습니다. 값은 고유하지 않지만 키는 맵에서 고유합니다.

스칼라 인터뷰 질문


4) 스칼라의 장점은 무엇인가요?

장점 스칼라 위치 :

  • Less 오류가 발생하기 쉬운 기능적 스타일
  • 높은 유지보수성 및 생산성
  • 높은 확장 성
  • 높은 테스트 가능성
  • 동시 프로그래밍 기능 제공

5) Scala는 어떤 면에서 다른 프로그래밍 언어보다 우수합니까?

  • 배열은 일반 제네릭을 사용하는 반면, 다른 언어에서는 제네릭이 나중에 추가되어 완전히 분리되어 있지만 배열과 동작이 겹치는 경우가 있습니다.
  • Scala는 일류 언어 기능으로 불변의 "val"을 가지고 있습니다. 스칼라의 "val"은 다음과 유사합니다. Java 최종 변수. 콘텐츠는 변경될 수 있지만 상위 참조는 변경할 수 없습니다.
  • 스칼라는 'if 블록', 'for-yield 루프', '코드'를 중괄호로 묶어 값을 반환합니다. 이는 더 선호되며 별도의 삼항 연산자가 필요 없습니다.
  • 싱글톤에는 싱글톤 객체가 있습니다. C++/Java/ C# 클래식 정적. 더 깨끗한 솔루션입니다
  • 영구 불변 컬렉션은 기본값이며 표준 라이브러리에 내장되어 있습니다.
  • 기본 튜플과 간결한 코드가 있습니다.
  • 보일러 플레이트 코드가 없습니다.

6) 스칼라 변수란 무엇입니까?

가치와 변수 Scala에는 두 가지 모양이 있습니다. 값 변수는 상수이며 일단 할당되면 변경할 수 없습니다. 반면에 일반 변수는 변경 가능하며 값을 변경할 수 있습니다.

두 가지 유형의 변수는 다음과 같습니다.

var myVar : Int=0;

val myVal: Int=1;


7) 객체와 클래스의 차이점을 언급해 보세요.

클래스는 설명에 대한 정의입니다. 이는 다른 유형의 메소드 및 구성 측면에서 유형을 정의합니다. 클래스는 객체의 청사진입니다. 반면 개체는 고유한 클래스의 인스턴스인 싱글톤입니다. 코드의 모든 개체에 대해 익명 클래스가 생성되며, 구현하기 위해 개체를 선언한 모든 클래스에서 상속됩니다.


8) 스칼라의 재귀 꼬리는 무엇입니까?

'재귀'는 자신을 호출하는 함수입니다. 자신을 호출하는 함수, 예를 들어 함수 'A'는 함수 'B'를 호출하고 이 함수는 'C' 함수를 호출합니다. 함수형 프로그래밍에서 자주 사용되는 기술입니다. 꼬리 재귀를 위해서는 함수에 대한 콜백이 수행될 마지막 함수여야 합니다.


9) 스칼라의 '스칼라 특성'이란 무엇입니까?

'특성'은 지원되는 메소드의 시그니처로 지정된 객체 유형을 정의하는 데 사용됩니다. 스칼라에서는 부분적으로 구현이 가능하지만 특성에는 생성자 매개변수가 없을 수 있습니다. 특성은 메서드와 필드 정의로 구성되며 이를 클래스로 혼합하여 재사용할 수 있습니다.


10) 특성은 언제 사용할 수 있나요?

특성을 사용할 때 특정한 규칙은 없지만 고려할 수 있는 지침은 있습니다.

  • 동작을 재사용하지 않으려면 구체적인 클래스로 만드세요. 어쨌든 재사용 가능한 행동은 아닙니다.
  • 그것을 상속받기 위해서는 Java 코드에서는 추상 클래스를 사용할 수 있습니다.
  • 효율성이 최우선이라면 클래스를 사용하는 쪽으로 기울세요
  • 관련되지 않은 여러 클래스에서 재사용할 수 있는 경우 특성으로 만드세요. 클래스 계층 구조의 다른 부분에서는 특성만 다른 부분으로 혼합될 수 있습니다.
  • 추상 클래스를 컴파일된 형식으로 배포하고 외부 그룹이 이 클래스에서 상속되는 클래스를 작성할 것으로 예상되는 경우 추상 클래스를 사용할 수 있습니다.

경력자를 위한 Scala 인터뷰 질문

11) 케이스 클래스란 무엇입니까?

케이스 클래스는 패턴 일치를 통해 재귀적 분해 메커니즘을 제공하며 생성자 매개변수를 내보내는 일반 클래스입니다. 케이스 클래스의 생성자 매개변수는 직접 액세스할 수 있으며 공개 값으로 처리됩니다.


12) 스칼라에서 튜플의 용도는 무엇입니까?

스칼라 튜플은 고정된 수의 항목을 결합하여 전체적으로 전달할 수 있습니다. 튜플은 변경할 수 없으며 배열이나 목록과 달리 다양한 유형의 객체를 보유할 수 있습니다.


13) Scala의 함수 커링이란 무엇입니까?

Currying은 여러 인수를 취하는 함수를 단일 인수를 취하는 함수로 변환하는 기술입니다. Haskell 및 LISP와 같은 언어와 동일한 기술이 Scala에서 지원됩니다. 함수 커링은 가장 적게 사용되고 오해되는 것 중 하나입니다.


14) Scala의 암시적 매개변수란 무엇입니까?

암시적 매개변수는 메소드의 매개변수를 "찾을" 수 있도록 하는 방법입니다. 이는 기본 매개변수와 유사하지만 “기본값” 값을 찾는 메커니즘이 다릅니다. 암시적 매개변수는 암시적으로 표시된 메서드나 생성자에 대한 매개변수입니다. 즉, 매개변수 값이 언급되지 않은 경우 컴파일러는 범위 내에 정의된 "암시적" 값을 검색합니다.


15) Scala의 클로저란 무엇입니까?

클로저는 함수 외부에 선언된 변수의 값에 따라 반환 값이 달라지는 함수입니다.


16) 스칼라의 모나드는 무엇입니까?

모나드는 다른 객체를 감싸는 객체입니다. 객체를 직접 조작하는 대신 기본 객체의 데이터 조작을 수행하기 위해 Monad 미니 프로그램, 즉 함수를 전달합니다. Monad는 프로그램을 기본 객체에 적용하는 방법을 선택합니다.


17) 스칼라 익명 함수란 무엇입니까?

소스 코드에서는 익명 함수를 '함수 리터럴'이라고 하며, 런타임 시 함수 리터럴은 함수 값이라는 개체로 인스턴스화됩니다. Scala는 익명 함수를 정의하기 위한 비교적 쉬운 구문을 제공합니다.


18) '스칼라 고차' 기능에 대해 설명해주세요.

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의 차이점은 무엇입니까?

스칼라에서는 a, val 또는 var 키워드를 사용하여 변수를 정의할 수 있습니다. val과 var의 차이점은 var는 Java 선언과 매우 유사하지만 val은 거의 다르다는 것입니다. 변수가 val을 사용하여 선언되면 다른 참조를 가리키도록 참조를 변경할 수 없습니다. var 키워드를 사용하여 정의된 변수는 변경 가능하며 여러 번 변경될 수 있습니다.


20) 스칼라에서 옵션, 일부 및 없음은 무엇입니까?

'Option'은 '일부' 일반 값이거나 없음일 수 있는 Scala 일반 유형입니다. '큐'는 종종 이를 사용하여 null일 수 있는 기본 요소를 나타냅니다.


21) 목록에 어떻게 추가하나요?

스칼라에서는 목록에 추가하려면 “:+” 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() 메서드를 사용하세요. 스칼라에서는 다음을 사용할 수 있습니다.

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


23) 스칼라가 불변성을 선호하는 이유는 무엇입니까?

Scala는 디자인에서 불변성을 선호하며 많은 경우 이를 기본값으로 사용합니다. 불변성은 평등 문제나 동시 프로그램을 다룰 때 도움이 될 수 있습니다.


24) 스칼라 식별자의 네 가지 유형은 무엇입니까?

네 가지 유형의 식별자는 다음과 같습니다.

  • 영숫자 식별자
  • Opera토르 식별자
  • 혼합 식별자
  • 리터럴 식별자

25) 스칼라 리터럴에는 어떤 유형이 있나요?

스칼라의 다양한 리터럴 유형은 다음과 같습니다.

  • 정수 리터럴
  • 부동 소수점 리터럴
  • 부울 리터럴
  • 기호 리터럴
  • 문자 리터럴
  • 문자열 리터럴
  • 여러 줄 문자열

이 인터뷰 질문은 당신의 비바(구술)에도 도움이 될 것입니다.