Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Scala Basic Interview Questions

1. What are some main features of Scala?

Some languages bring unique benefits to a particular kind of project, making them
the best choice. The interoperability of Scala and its functional programming
paradigm propelled Scala's rapid growth. In order to address Java's critics, Scala is
designed to be concise. The following are some of Scala's unique features that set it
apart from other programming languages:

• Type Inference: Scala doesn't require you to mention the data type or return type of
functions explicitly. It will infer the type of data by itself and the return type of
function depends on the type of last expression present in the function.
• Immutability: The default behavior of Scala variables is immutability, which means that
they can't be altered. Thus, concurrency control can be managed easier. In addition,
mutable variables can also be used.
• Lazy Evaluation: In lazy evaluation or call-by-need, expressions are not evaluated until
their first use, or until their demand. Computations are lazy in Scala by default. To
declare a lazy variable, use the lazy keyword.
• Case classes and Pattern matching: Case classes in Scala are immutable classes that
can be decomposed via pattern matching. Case classes include public and immutable
parameters by default. These classes support pattern matching, which makes it easier
to write logical code.
• String Interpolation: Scala 2.10.0 introduces String Interpolation, a new method for
generating strings from your data. Users can embed variable references directly in
processed string literals with string interpolation. String interpolation in Scala can be
achieved using the s, f, and raw interpolation methods.
• Singleton object: Neither static variables nor static methods exist in Scala, so its
singleton object (a class with only one object in the source code) is used as an entry
point to your program execution. a class. When declaring a singleton object, the
keyword "object" is used instead of the class keyword.

Additionally, it offers:
• Scala's compatibility and interoperability with Java allow developers to keep their Java
libraries and use the JVM.
• By supporting multi-paradigm programming, Scala enables more elegant, compact, and
type-safe programming.
• Scala integrates seamlessly with big data ecosystems, which are largely based on Java.
It works flawlessly with Java libraries, IDEs (like Eclipse and IntelliJ), and frameworks
(such as Spring and Hibernate).

Create A Free Personalised Study Plan

Get into your dream companies with expert guidance

Real-Life Problems

Prep for Target Roles

Custom Plan Duration

Create My Plan

2. Write some benefits of using Scala.

It is important for a language to offer attractive features if it hopes to challenge


Java's dominance. In this regard, Scala brings many positive attributes to the table
and its ability to compete with Java proves its prominence. The following are some
of these positive attributes:

• It is easier to learn because it is more concise, readable, and error-free, especially for
people with a background in Java or a similar language.
• Scala offers complex features such as macros, tuples, etc., making coding easier and
more performance-enhancing.
• Scala offers a number of advances, including functions, macros, and tuples.
• By using an expressive typing system, it ensures security and consistency in statistical
abstraction.
• With Scala, you can build fault-tolerant, highly concurrent systems.
• Apache Spark Ecosystem has good support for Scala, it's perfect for data analytics.
• Scala provides support for concurrency, allowing parallel processing.

3. Name some of the frameworks that Scala supports.

Following are some of the Frameworks Scala supports:


• Akka Framework
• Spark Framework
• Play Framework
• Scalding Framework
• Neo4j Framework, etc.

You can download a PDF version of Scala Interview Questions.


Download PDF

4. What are case classes in Scala?

Scala case classes are like regular classes except for the fact that they are good for
modeling immutable data and serve as useful in pattern matching. Case classes
include public and immutable parameters by default. These classes support pattern
matching, which makes it easier to write logical code. The following are some of the
characteristics of a Scala case class:

• Instances of the class can be created without the new keyword.


• As part of the case classes, Scala automatically generates methods such as equals(),
hashcode(), and toString().
• Scala generates accessor methods for all constructor arguments for a case class.

Syntax:

case class className(parameters)

Example:
case class Student(name:String, age:Int)
object MainObject
{
def main(args:Array[String])
{
var c = Student(“Aarav”, 23)
println("Student name:" + c.name);
println("Student age: " + c.age);
}
}

Output:

Student Name: Aarav


Student Age: 23

5. Explain the term stream in Scala.

Streams, a Scala feature, are essentially lazy lists in which elements are only
evaluated as needed. In this way, Scala allows for faster processing. Streams are
similar to lists in terms of performance.

Syntax:

val str = 1 #:: 2 #:: 3 #:: Stream.empty

Scala lets you construct Lists by using the :: operator, while you can build Streams
by using the #:: operator with Stream.empty at the end of the expression. A
stream's head in the above syntax is 1, while its tail is 2 and 3.

Example:

object MainObject
{
def main(args:Array[String]){
val stream = 20 #:: 30 #:: 45 #:: Stream.empty
println(stream)
}
}

Output:

Stream(20, ?)

Observe the output and you will see a question mark instead of the second element.
Scala only evaluates lists if they are needed.

Learn via our Video Courses


SRIKANTH VARMA

Computer Networking Course: Master Computer Networking

Enrolled: 10491

Free

SUMEET MALIK

NSET Course: Aptitude

4.7

Enrolled: 198

Free

SUMEET MALIK

NSET Course: Learnability

4.7

Enrolled: 28
Free

SUMEET MALIK

NSET Course: Mathematics

4.7

Enrolled: 149

Free

SRIKANTH VARMA

Operating System Course: Learn Fundamentals of Operating System

Enrolled: 11838

Free

SRIKANTH VARMA
Microsoft Malware Detection using Machine Learning

Enrolled: 326

Free
SRIKANTH VARMA

Netflix Movie Recommendation System using Machine Learning

Enrolled: 628

Free

SRIKANTH VARMA

Amazon Fashion Discovery Engine using Machine Learning

Enrolled: 161

Free

SRIKANTH VARMA

Personalized Cancer Diagnosis using Machine Learning

Enrolled: 161

Free

SRIKANTH VARMA

Facebook Friend Recommendation using Graph Mining

Enrolled: 134
Free

SRIKANTH VARMA

Predicting tags for Stackoverflow using Machine Learning

Enrolled: 106

Free

SRIKANTH VARMA

Quora Question Pair Similarity Problem using Machine Learning

Enrolled: 106

Free

SRIKANTH VARMA

Taxi demand prediction in New York City using Machine Learning

Enrolled: 129

Free

MRINAL BHATTACHARYA

React JS Free Course


4.8

Enrolled: 4058

Free

YASH RAJ

AWS Free Course

4.7

Enrolled: 3563

Free

SUBHESH KUMAR

Object Oriented Programming in Java Course Online

4.95

Enrolled: 7005

Free

SRIKANTH VARMA

Deep Learning Course: Deep Dive into Deep Learning

Enrolled: 4046

Free
SRIKANTH VARMA

Free Maths for Machine Learning Course

Enrolled: 5052

Free

SRIKANTH VARMA

Supervised Machine Learning Course

Enrolled: 6922

Free

JAMSHAID SOHAIL

PyTorch for Deep Learning Course

4.8

Enrolled: 2117

Free

SRIKANTH VARMA

Unsupervised Machine Learning Course

Enrolled: 2401
Free

YASH SINHA

Data Science Course - Mastering the Fundamentals

4.7

Enrolled: 20675

Free

PRATEEK NARANG

Maths for Programmers

Enrolled: 5501

Free

ARNAV GUPTA

Spring Boot Course: Certified Course for Essential Skills

Enrolled: 11612

Free

GAURAV SISODIA

Keras & TensorFlow for Deep Learning


4.8

Enrolled: 2239

Free

PRATEEK NARANG

Coding Essentials: Learn Logic Building for Beginners Free Course

Enrolled: 8164

Free

ARNAV GUPTA

Machine Coding Tic Tac Toe - LLD Case Study

Enrolled: 1993

Free

MRINAL BHATTACHARYA

Node JS Certification Course - Master the Fundamentals

4.8

Enrolled: 16352

Free
PRATEEK NARANG

SQL for Beginners: Learn SQL using MySQL and Database Design Course

Enrolled: 24745

Free

ADITYA JAIN

Data Structures in C++ Course

4.5

Enrolled: 21101

Free

6. What are tuples and what is their usage in Scala?

A tuple is a heterogeneous data structure, consisting of a fixed number of elements,


each with a different data type. A tuple, however, can contain objects of different
types, as well as being immutable. They are particularly useful when returning
multiple values from methods.

A tuple's type is determined by how many elements it contains as well as the type
of those elements. Scala uses Tuple2, Tuple3, etc., up to Tuple22, to represent
types of tuples. Scala currently limits the number of elements in a tuple to 22, and if
the number of elements in the tuple exceeds 22, an error will be generated.

Example: A tuple storing an integer, and a string.

val name = (23, "InterviewBit")

The inferred type of ingredient is (Integer, String), which is shorthand for Tuple2[Int,
String].

Note: Tuples can be used to overcome this limit. It is possible for a tuple to contain
other tuples.
7. What are different types of Scala variables?

It is well known that variables are merely reserved memory locations for storing
values. In Scala, variables are mainly of two types:

• Mutable Variables: These are variables whose value is capable of changing and the var
keyword is used to declare these variables.

Syntax:

var Variable_name: Data_type = "value";

Example:

var Company: String = "InterviewBit”;

• Immutable Variables: These are variables whose value is not capable of changing and
the val keyword is used to declare these variables.

Syntax:

var Variable_name: Data_type = "value";

Example:

val Company: String = "InterviewBit";

Advance your career with Mock Assessments

Real-world coding challenges for top company interviews

Real-Life Problems

Detailed reports
Attempt Now

8. Explain Option and write its usage.

The Scala Option[T] is referred to as a carrier of one element or none for a specified
type. As the name suggests, this container holds either a Some or a None object,
which represents a missing value. It holds Some[T] if a value is stored, otherwise
none. In simple words, Scala options are wrappers for missing values.

Example:

object option
{
def main(args: Array[String])
{
val employee: Map("InterviewBit" -> "Aarav", "Scaler" -> "Ankesh")
val a= employee.get("InterviewBit")
val b= employee.get("Informatica")
println(a);
println(b);
}
}

Output:

Some(Aarav)
None

Here, the key of the value InterviewBit is found, therefore, Some is returned,
however, the key of the value Informatica is not found, therefore, None is returned.

9. Explain what you mean by literals and write its types.

Literals, or constants, are any constant value that can be assigned to a variable. A
literal is a set of symbols used to describe a constant value in the code. They are
classified into the following types:

• Integer literals
• Floating point literals
• Boolean literals
• Symbol literals
• Character literals
• String literals
• Multi-Line strings

10. What is the importance of App in Scala?

A helper class, named App, is provided by Scala that provides the main method and
its members together. App trait allows Objects to be turned into executable
programs quickly. The App class in Scala can be extended instead of writing your
own main method. This way you can produce concise and scalable applications.
Example:

object InterviewBit extends App


{
println("Hello Scala")
}

You might also like