Introducción:
cuando una función no puede producir un retorno para cada dato de entrada variable que se le proporciona, esa función se denomina función parcial . Solo puede determinar una salida para un subconjunto de algunas entradas practicables. Solo se puede aplicar parcialmente a las entradas indicadas.
Algunos puntos importantes:
- Las funciones parciales son beneficiosas para comprender muchos tipos inconsistentes de funciones de Scala.
- Se puede interpretar utilizando declaraciones de casos.
- Es un rasgo, que necesita dos métodos, a saber, isDefinedAt y apply para implementarse.
Ejemplo:
// Scala program of // Partial function // Creating object object Case { // Main method def main(args: Array[String]) { // Creating Partial function // using two methods val r = new PartialFunction[Int, Int] { // Applying isDefinedAt method def isDefinedAt(q: Int) = q != 0 // Applying apply method def apply(q: Int) = 12 * q } // Displays output if the // condition is satisfied println(r(10)) } }
120
Aquí, se definen dos métodos para aplicar la función Parcial, donde isDefinedAt establece la condición y apply realiza la operación si se cumple la condición dada.
Métodos para definir funciones parciales:
existen algunos métodos para definir funciones parciales, que incluyen declaraciones de casos , método de recopilación , y luego y o si no .
- Función parcial usando la declaración Case:
crearemos una función parcial a continuación usando la declaración Case.
Ejemplo:// Scala program using
// case statements
// Creating object
object
Case
{
// Main method
def
main(args
:
Array[String])
{
// Creating Partial function
val
d
:
PartialFunction[Int, Int]
=
{
// using case statement
case
x
if
(x
%
3
)
==
0
=>
x *
3
}
// Displays output if
// the condition is
// satisfied
println(d(
3
))
}
}
Producción:9
Aquí, la función parcial se crea utilizando la declaración de caso , por lo que no se requiere aplicar y isDefinedAt aquí.
- Función parcial usando orElse:
este método es útil para enstringr funciones parciales.
Ejemplo:// Scala program using
// orElse
// Creating object
object
orElse
{
// Main method
def
main(args
:
Array[String])
{
// Creating Partial function1
val
M
:
PartialFunction[Int, Int]
=
{
// using case statement
case
x
if
(x
%
5
)
==
0
=>
x *
5
}
// Creating Partial function2
val
m
:
PartialFunction[Int, Int]
=
{
// using case statement
case
y
if
(y
%
2
)
==
0
=>
y *
2
}
// chaining two partial
// functions using orElse
val
r
=
M orElse m
// Displays output for
// which the given condition
// is satisfied
println(r(
5
))
println(r(
4
))
}
}
Producción:25 8
Aquí, orElse devolverá la salida para la cual se cumple la condición dada.
- Función parcial utilizando el método
Collect: el método Collect solicita una función parcial para cada elemento de la colección y, por lo tanto, ayuda a construir una nueva colección.
Ejemplo:// Scala program using
// collect method
// Creating object
object
Collect
{
// Main method
def
main(args
:
Array[String])
{
// Creating Partial function
val
M
:
PartialFunction[Int, Int]
=
{
// using case statement
case
x
if
(x
%
5
) !
=
0
=>
x *
5
}
// Applying collect method
val
y
=
List(
7
,
15
,
9
) collect { M }
// Displays output for which
// the given condition
// is satisfied
println(y)
}
}
Producción:List(35, 45)
Aquí, Collect aplicará la función Parcial a todos los elementos de la Lista y devolverá una nueva Lista sobre la base de las condiciones establecidas.
- Función parcial usando andThen:
este método se agrega al final de las strings, que se utiliza para continuar hacia strings adicionales de funciones parciales.
Ejemplo:// Scala program using
// andThen method
// Creating object
object
andThen
{
// Main method
def
main(args
:
Array[String])
{
// Creating Partial function
val
M
:
PartialFunction[Int, Int]
=
{
// using case statement
case
x
if
(x
%
4
) !
=
0
=>
x *
4
}
// Creating another function
val
append
=
(x
:
Int)
=>
x *
10
// Applying andThen method
val
y
=
M andThen append
// Displays output after
// appending the another
// function given
println(y(
7
))
}
}
Producción:280
Aquí, andThen agregará la salida de la función Parcial con la otra función dada y luego devolverá ese valor.
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA