Las 25 preguntas principales de la entrevista de Scala y amp; Respuestas

Anonim

Descargar PDF

1) Explique qué es Scala.

Scala es un lenguaje de scripting y programación funcional de objetos para aplicaciones de software generales diseñado para expresar soluciones de manera concisa.

2) ¿Qué es un 'conjunto Scala'? ¿Cuáles son los métodos mediante los cuales se expresan los conjuntos de operaciones?

Scala set es una colección de elementos por pares del mismo tipo. Scala set no contiene elementos duplicados. Hay dos tipos de conjuntos, mutables e inmutables.

3) ¿Qué es un 'mapa Scala'?

Scala map es una colección de pares de claves o valores. En función de su clave, se puede recuperar cualquier valor. Los valores no son únicos, pero las claves son únicas en el mapa.

4) ¿Cuál es la ventaja de Scala?

  • Estilo funcional menos propenso a errores
  • Alta mantenibilidad y productividad.
  • Alta escalabilidad
  • Alta capacidad de prueba
  • Proporciona funciones de programación concurrente

5) ¿De qué manera Scala es mejor que otros lenguajes de programación?

  • Las matrices usan genéricos regulares, mientras que en otros lenguajes, los genéricos se incorporan como una ocurrencia tardía y están completamente separados, pero tienen comportamientos superpuestos con las matrices.
  • Scala tiene un "val" inmutable como característica de lenguaje de primera clase. El "val" de scala es similar a las variables finales de Java. Los contenidos pueden mutar, pero la referencia principal es inmutable.
  • Scala permite 'if blocks', 'for-yield loops' y 'code' entre llaves para devolver un valor. Es más preferible y elimina la necesidad de un operador ternario independiente.
  • Singleton tiene objetos singleton en lugar de C ++ / Java / C # estático clásico. Es una solucion mas limpia
  • Las colecciones inmutables persistentes son las predeterminadas y están integradas en la biblioteca estándar.
  • Tiene tuplas nativas y un código conciso.
  • No tiene código de placa de caldera

6) ¿Qué son las variables Scala?

Los valores y las variables son dos formas que vienen en Scala. Una variable de valor es constante y no se puede cambiar una vez asignada. Es inmutable, mientras que una variable regular, por otro lado, es mutable y puede cambiar el valor.

Los dos tipos de variables son

var myVar: Int = 0;

val myVal: Int = 1;

7) ¿Mencionar la diferencia entre un objeto y una clase?

Una clase es una definición para una descripción. Define un tipo en términos de métodos y composición de otros tipos. Una clase es un plano del objeto. Mientras que, un objeto es un singleton, una instancia de una clase que es única. Se crea una clase anónima para cada objeto en el código, hereda de cualquier clase que usted declaró como objeto para implementar.

8) ¿Qué es la cola de recursividad en scala?

'Recursion' es una función que se llama a sí misma. Una función que se llama a sí misma, por ejemplo, una función 'A' llama a la función 'B', que llama a la función 'C'. Es una técnica que se utiliza con frecuencia en la programación funcional. Para que una cola sea recursiva, la llamada de regreso a la función debe ser la última función que se realice.

9) ¿Qué es 'rasgo scala' en scala?

Los 'rasgos' se utilizan para definir tipos de objetos especificados por la firma de los métodos admitidos. Scala permite implementarse parcialmente, pero los rasgos pueden no tener parámetros de constructor. Un rasgo consiste en un método y una definición de campo, mezclándolos en clases se puede reutilizar.

10) ¿Cuándo puedes usar rasgos?

No existe una regla específica cuando puede usar rasgos, pero hay una pauta que puede considerar.

  • Si el comportamiento no se reutilizará, conviértalo en una clase concreta. De todos modos, no es un comportamiento reutilizable.
  • Para heredarlo en código Java, se puede usar una clase abstracta.
  • Si la eficiencia es una prioridad, inclínese hacia el uso de una clase
  • Conviértalo en un rasgo si se puede reutilizar en clases múltiples y no relacionadas. En diferentes partes de la jerarquía de clases, solo los rasgos se pueden mezclar en diferentes partes.
  • Puede usar la clase abstracta, si desea distribuirla en forma compilada y espera que grupos externos escriban clases heredadas de ella.

11) ¿Qué son las clases de casos?

Las clases de casos proporcionan un mecanismo de descomposición recursivo a través de la coincidencia de patrones, son clases regulares que exportan su parámetro de constructor. Se puede acceder directamente a los parámetros del constructor de las clases de casos y se tratan como valores públicos.

12) ¿Cuál es el uso de tuplas en scala?

Las tuplas Scala combinan un número fijo de elementos juntos para que puedan pasarse como un todo. Una tupla es inmutable y puede contener objetos de diferentes tipos, a diferencia de una matriz o lista.

13) ¿Qué es el curry de funciones en Scala?

Currying es la técnica de transformar una función que toma múltiples argumentos en una función que toma un solo argumento Muchas de las mismas técnicas que el lenguaje como Haskell y LISP son compatibles con Scala. El curry de funciones es uno de los menos utilizados e incomprendidos.

14) ¿Cuáles son los parámetros implícitos en Scala?

El parámetro implícito es la forma que permite "encontrar" los parámetros de un método. Es similar a los parámetros predeterminados, pero tiene un mecanismo diferente para encontrar el valor "predeterminado". El parámetro implícito es un parámetro del método o constructor que se marca como implícito. Esto significa que si no se menciona un valor de parámetro, el compilador buscará un valor "implícito" definido dentro de un alcance.

15) ¿Qué es un cierre en Scala?

Un cierre es una función cuyo valor de retorno depende del valor de las variables declaradas fuera de la función.

16) ¿Qué es Monad en Scala?

Una mónada es un objeto que envuelve a otro objeto. Pasas los miniprogramas de Monad, es decir, funciones, para realizar la manipulación de datos del objeto subyacente, en lugar de manipular el objeto directamente. Monad elige cómo aplicar el programa al objeto subyacente.

17) ¿Qué es la función anónima de Scala?

En un código fuente, las funciones anónimas se denominan 'literales de función' y, en tiempo de ejecución, las funciones literales se instancian en objetos llamados valores de función. Scala proporciona una sintaxis relativamente fácil para definir funciones anónimas.

18) ¿Explica las funciones de 'Scala de orden superior'?

Scala permite la definición de funciones de orden superior. Son funciones que toman otras funciones como parámetros, o cuyo resultado es una función. En el siguiente ejemplo, la función apply () toma otra función 'f' y un valor 'v' y aplica la función a v.

Ejemplo:

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() + "]"
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado.
C:/>scalac Test.scalaC:/>scala Test[10]C:/>

19) ¿Cuál es la diferencia entre var y value?

En scala, puede definir una variable utilizando palabras clave a, val o var. La diferencia entre val y var es que var es muy similar a la declaración de Java, pero val es un poco diferente. No podemos cambiar la referencia para que apunte a otra referencia, una vez que la variable se declara usando val. La variable definida usando palabras clave var es mutable y se puede cambiar cualquier cantidad de veces.

20) ¿Qué son las opciones, algunas y ninguna en scala?

'Option' es un tipo genérico de Scala que puede ser 'algún' valor genérico o ninguno. 'Queue' lo usa a menudo para representar primitivas que pueden ser nulas.

21) ¿Cómo agrego a la lista?

En scala para agregar a una lista, use "

:+” 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) ¿Cómo se puede formatear una cadena?

Para formatear una cadena, use el método .format (), en scala puede usar

Val formateado = "% s% i" .format (mystring.myInt)

23) ¿Por qué Scala prefiere la inmutabilidad?

Scala prefiere la inmutabilidad en el diseño y, en muchos casos, la usa por defecto. La inmutabilidad puede ayudar cuando se trata de problemas de igualdad o programas concurrentes.

24) ¿Cuáles son los cuatro tipos de identificadores scala?

Los cuatro tipos de identificadores son

  • Identificadores alfanuméricos
  • Identificadores de operador
  • Identificadores mixtos
  • Identificadores literales

25) ¿Cuáles son los diferentes tipos de literales Scala?

Los diferentes tipos de literales en scala son

  • Literales enteros
  • Literales de punto flotante
  • Literales booleanos
  • Literales de símbolo
  • Literales de carácter
  • Literales de cadena
  • Cuerdas multilínea