The Underscore Placeholder in Scala
- Use Underscore to Import Statement in Scala
-
Use Underscore in a
for
Loop in Scala - Use Underscore in the Case Pattern in Scala
- Use Underscore in a Variable in Scala
- Use Underscore Numeric Values in Scala
This tutorial will discuss the underscore (_
) and its uses in Scala. In Scala, underscore (_
) is a placeholder that represents the absence of a value or variable.
We can use it to assign a default value to a variable and import all the classes of a package in the code.
Use Underscore to Import Statement in Scala
Using underscore it to import packages is the common use of the placeholder in Scala. For example, if we want to import all the break functions, use the underscore.
import scala.util.control.Breaks._
object MyClass {
def main(args: Array[String]) {
breakable {
for(i<-1 to 10 by 2){
if(i==5)
break
else
println(i)
}
}
}
}
Output:
1
3
Use Underscore in a for
Loop in Scala
We use the underscore within the foreach
to traverse the list elements. We used it in place of any reference variable of the list.
object MyClass {
def main(args: Array[String]) {
List(1,2,3,4).foreach(println(_))
}
}
Output:
1
2
3
4
Use Underscore in the Case Pattern in Scala
We can also use it to set a default case in the case patterns. In other languages, we use the default keyword to define a default case that executes when no match case is found, and in Scala works similarly.
object MyClass {
def matchTest(x: Int): String = x match {
case 1 => "one"
case 2 => "two"
case _ => "anything other than one and two"
}
def main(args: Array[String]) {
val r = matchTest(2)
val r2 = matchTest(20)
println(r)
print(r2)
}
}
Output:
two
anything other than one and two
Use Underscore in a Variable in Scala
We can use the underscore to refer to the default value in a variable declaration. As in the example below, we declare an integer variable whose default value is 0.
object MyClass {
var i: Int = _
def main(args: Array[String]) {
print(i)
}
}
Output:
0
Use Underscore Numeric Values in Scala
This is another case of using the underscore. We are using it to make numeric values more readable.
When we have a large value, it isn’t easy to read it once. It is also known as a numeric separator.
object MyClass {
def main(args: Array[String]) {
var i: Int = 1_000_000
print(i)
}
}
Output:
1000000