Devolver booleano con If-Else en Scala
Suraj P
21 junio 2022
Scala
Scala Boolean
Este artículo nos enseñará cómo devolver valores booleanos cuando se trabaja con if-else en Scala.
Devolver booleano con if-else en Scala
Veamos un escenario para entenderlo mejor.
def check(): Boolean = {
for ((digit1,digit2,digit3) <- digitsSet){
if ((1,5,6) == (digit1,digit2,digit3))
true
else
false
}
}
val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
En el código anterior, estamos tratando de encontrar si nuestro conjunto contiene esos tres dígitos, por lo que esperamos ya sea true o false como la salida, pero cuando se ejecuta el código anterior, obtenemos el siguiente error.
type mismatch;
found : Unit
required: Boolean
for ((digit1,digit2,digit3) <- digitsSet){
El problema es que la función debería devolver Booleano en lugar de Unidad.
Entonces podemos resolver este problema de diferentes maneras.
- Usar el método
containspara encontrar un elemento en nuestro conjunto. Devuelvetruesi el elemento está presente; else devuelvefalse.
Esta es una forma más elegante de escribir el código anterior.
Código de ejemplo:
```scala
val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
println(digitsSet.contains((10,20,30)))
```
Producción:
```text
true
```
-
Añadiendo una sentencia
returnantes detrueyfalse. Esta es la mejor manera, ya que es versátil y se puede utilizar en casi cualquier escenario.val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) def check(): Boolean = { val store = for ((digit1,digit2,digit3) <- digitsSet) { if ((10,20,30) == (digit1,digit2,digit3)) return true } false } println(check())
Producción:
```text
true
```
-
Usando el método
existsen Scala.val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) println(digitsSet.exists( _ == (1,20,50) ))Producción:
false
¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
