As 25 principais perguntas e respostas da entrevista sobre Scala (PDF)
Aqui estรฃo as perguntas e respostas da entrevista do Scala para candidatos mais novos e experientes para conseguir o emprego dos sonhos.
Perguntas e respostas da entrevista Scala para calouros
1) Explique o que รฉ Scala?
Scala รฉ uma linguagem de programaรงรฃo e script funcional de objetos para aplicativos de software gerais projetados para expressar soluรงรตes de maneira concisa.
2) O que รฉ um 'conjunto Scala'? Quais sรฃo os mรฉtodos pelos quais os conjuntos de operaรงรตes sรฃo expressos?
O conjunto Scala รฉ uma coleรงรฃo de elementos pares do mesmo tipo. O conjunto Scala nรฃo contรฉm nenhum elemento duplicado. Existem dois tipos de conjuntos, mutรกveis โโe imutรกveis.
๐ Download gratuito de PDF: Perguntas e respostas da entrevista Scala >>
3) O que รฉ um 'mapa Scala'?
O mapa Scala รฉ uma coleรงรฃo de pares de chaves ou valores. Com base na sua chave, qualquer valor pode ser recuperado. Os valores nรฃo sรฃo รบnicos, mas as chaves sรฃo รบnicas no Mapa.
4) Qual a vantagem do Scala?
As vantagens de Scala como:
- Less estilo funcional propenso a erros
- Alta capacidade de manutenรงรฃo e produtividade
- alta escalabilidade
- Alta testabilidade
- Fornece recursos de programaรงรฃo simultรขnea
5) De que forma o Scala รฉ melhor que outras linguagens de programaรงรฃo?
- Os arrays usam genรฉricos regulares, enquanto em outras linguagens, os genรฉricos sรฃo adicionados posteriormente e sรฃo completamente separados, embora apresentem sobreposiรงรฃo.ping comportamentos com matrizes.
- Scala tem โvalโ imutรกvel como um recurso de linguagem de primeira classe. O โvalโ de scala รฉ semelhante a Java variรกveis โโfinais. O conteรบdo pode sofrer alteraรงรตes, mas a referรชncia superior รฉ imutรกvel.
- Scala permite que 'blocos if', 'loops for-yield' e 'cรณdigo' entre colchetes retornem um valor. ร mais preferรญvel e elimina a necessidade de um operador ternรกrio separado.
- Singleton tem objetos singleton em vez de C++/Java/C# clรกssico estรกtico. ร uma soluรงรฃo mais limpa
- Coleรงรตes imutรกveis โโpersistentes sรฃo o padrรฃo e incorporadas ร biblioteca padrรฃo.
- Possui tuplas nativas e um cรณdigo conciso
- Nรฃo tem cรณdigo padrรฃo
6) Quais sรฃo as variรกveis โโScala?
Valores e variรกveis sรฃo duas formas que vรชm no Scala. Uma variรกvel de valor รฉ constante e nรฃo pode ser alterada depois de atribuรญda. ร imutรกvel, enquanto uma variรกvel regular, por outro lado, รฉ mutรกvel e vocรช pode alterar o valor.
Os dois tipos de variรกveis โโsรฃo
var myVar : Int=0;
val myVal: Int=1;
7) Mencione a diferenรงa entre um objeto e uma classe?
Uma classe รฉ uma definiรงรฃo para uma descriรงรฃo. Ele define um tipo em termos de mรฉtodos e composiรงรฃo de outros tipos. Uma classe รฉ um projeto do objeto. Enquanto um objeto รฉ um singleton, uma instรขncia de uma classe que รฉ รบnica. Uma classe anรดnima รฉ criada para cada objeto no cรณdigo, ela herda de quaisquer classes que vocรช declarou objeto para implementar.
8) O que รฉ cauda de recursรฃo em scala?
'Recursรฃo' รฉ uma funรงรฃo que chama a si mesma. Uma funรงรฃo que chama a si mesma, por exemplo, uma funรงรฃo 'A' chama a funรงรฃo 'B', que chama a funรงรฃo 'C'. ร uma tรฉcnica usada frequentemente em programaรงรฃo funcional. Para que haja recursividade final, a chamada de retorno para a funรงรฃo deve ser a รบltima funรงรฃo a ser executada.
9) O que รฉ 'traรงo scala' em scala?
'Traits' sรฃo usados โโpara definir tipos de objetos especificados pela assinatura dos mรฉtodos suportados. Scala permite ser parcialmente implementado, mas as caracterรญsticas podem nรฃo ter parรขmetros de construtor. Uma caracterรญstica consiste na definiรงรฃo de mรฉtodo e campo, ao misturรก-los em classes ela pode ser reutilizada.
10) Quando vocรช pode usar caracterรญsticas?
Nรฃo existe uma regra especรญfica quando vocรช pode usar caracterรญsticas, mas hรก uma diretriz que vocรช pode considerar.
- Se o comportamento nรฃo for reutilizado, torne-o uma classe concreta. De qualquer forma, nรฃo รฉ um comportamento reutilizรกvel.
- Para herdar dele em Java cรณdigo, um abstracA classe t pode ser usada.
- Se a eficiรชncia รฉ uma prioridade, opte por usar uma classe
- Torne-o uma caracterรญstica se puder ser reutilizado em classes mรบltiplas e nรฃo relacionadas. Em diferentes partes da hierarquia de classes, apenas as caracterรญsticas podem ser misturadas em diferentes partes.
- Vocรช pode usar abdominais.tracA classe `t`, se vocรช quiser distribuรญ-la em formato compilado e espera que grupos externos escrevam classes que herdem dela.
Perguntas da entrevista Scala para experientes
11) O que sรฃo aulas de caso?
As classes de caso fornecem um mecanismo de decomposiรงรฃo recursiva por meio de correspondรชncia de padrรตes, sรฃo classes regulares que exportam seu parรขmetro construtor. Os parรขmetros construtores das classes de caso podem ser acessados โโdiretamente e sรฃo tratados como valores pรบblicos.
12) Qual รฉ a utilidade de tuplas em scala?
As tuplas Scala combinam um nรบmero fixo de itens para que possam ser transmitidos como um todo. Uma tupla รฉ imutรกvel e pode conter objetos de diferentes tipos, diferentemente de um array ou lista.
13) O que รฉ funรงรฃo curry no Scala?
Currying รฉ a tรฉcnica de transformar uma funรงรฃo que recebe vรกrios argumentos em uma funรงรฃo que recebe um รบnico argumento. Muitas das mesmas tรฉcnicas de linguagens como Haskell e LISP sรฃo suportadas pelo Scala. A funรงรฃo currying รฉ uma das menos utilizadas e incompreendidas.
14) Quais sรฃo os parรขmetros implรญcitos no Scala?
Parรขmetro implรญcito รฉ a forma que permite que os parรขmetros de um mรฉtodo sejam โencontradosโ. ร semelhante aos parรขmetros padrรฃo, mas possui um mecanismo diferente para encontrar o valor โpadrรฃoโ. O parรขmetro implรญcito รฉ um parรขmetro para mรฉtodo ou construtor marcado como implรญcito. Isso significa que se um valor de parรขmetro nรฃo for mencionado, o compilador procurarรก um valor โimplรญcitoโ definido dentro de um escopo.
15) O que รฉ fechamento no Scala?
Um encerramento รฉ uma funรงรฃo cujo valor de retorno depende do valor das variรกveis โโdeclaradas fora da funรงรฃo.
16) O que รฉ Mรดnada em Scala?
Uma mรดnada รฉ um objeto que envolve outro objeto. Vocรช passa os miniprogramas Monad, ou seja, funรงรตes, para realizar a manipulaรงรฃo de dados do objeto subjacente, em vez de manipular o objeto diretamente. Monad escolhe como aplicar o programa ao objeto subjacente.
17) O que รฉ a funรงรฃo anรดnima do Scala?
Em um cรณdigo-fonte, funรงรตes anรดnimas sรฃo chamadas de 'literais de funรงรฃo' e, em tempo de execuรงรฃo, literais de funรงรฃo sรฃo instanciados em objetos chamados valores de funรงรฃo. Scala fornece uma sintaxe relativamente fรกcil para definir funรงรตes anรดnimas.
18) Explique as funรงรตes de 'ordem superior do Scala'?
Scala permite a definiรงรฃo de funรงรตes de ordem superior. Sรฃo funรงรตes que tomam outras funรงรตes como parรขmetros, ou cujo resultado รฉ uma funรงรฃo. No exemplo a seguir, a funรงรฃo apply() pega outra funรงรฃo โfโ e um valor โvโ e aplica a funรงรฃo a v.
Exemplo:
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() + "]"
Quando o cรณdigo acima รฉ compilado e executado, ele produz o seguinte resultado.
C:/>scalac Test.scala C:/>scala Test [10] C:/>
19) Qual รฉ a diferenรงa entre var e valor?
Em scala, vocรช pode definir uma variรกvel usando palavras-chave a, val ou var. A diferenรงa entre val e var รฉ que var รฉ muito parecido com a declaraรงรฃo java, mas val รฉ um pouco diferente. Nรฃo podemos alterar a referรชncia para apontar para outra referรชncia, uma vez que a variรกvel รฉ declarada usando val. As variรกveis โโdefinidas usando palavras-chave var sรฃo mutรกveis โโe podem ser alteradas quantas vezes quiser.
20) Quais sรฃo as opรงรตes, algumas e nenhuma no scala?
'Option' รฉ um tipo genรฉrico Scala que pode ser 'algum' valor genรฉrico ou nenhum. 'Queue' geralmente o usa para representar primitivos que podem ser nulos.
21) Como faรงo para anexar ร lista?
No scala para anexar em uma lista, use โ:+โ 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) Como vocรช pode formatar uma string?
Para formatar uma string, use o mรฉtodo .format(), em scala vocรช pode usar
Val formatted= โ%s %iโ.format (mystring.myInt)
23) Por que scala prefere a imutabilidade?
Scala prefere a imutabilidade no design e em muitos casos a utiliza como padrรฃo. A imutabilidade pode ajudar ao lidar com questรตes de igualdade ou programas simultรขneos.
24) Quais sรฃo os quatro tipos de identificadores scala?
Os quatro tipos de identificadores sรฃo
- Identificadores alfanumรฉricos
- Operaidentificadores de tor
- Identificadores mistos
- Identificadores literais
25) Quais sรฃo os diferentes tipos de literais Scala?
Os diferentes tipos de literais em scala sรฃo
- Literais inteiros
- Literais de ponto flutuante
- Literais booleanos
- Literais de sรญmbolo
- Literais de caracteres
- Literais de string
- Strings multilinhas
Essas perguntas da entrevista tambรฉm ajudarรฃo em sua viva (oral)

