¿Qué significa _ en este método que ya tiene un valor predeterminado? [duplicado]
Estoy trabajando en una suite de prueba que tiene un método de ayuda como:
def setupMocks(isChild: Boolean = false): Unit
y en algunas de las pruebas, se invoca como:
setupMocks(_)
mientras que en otras pruebas, se invoca como:
setupMocks()
¿Qué hace? _
¿Hacer aquí? ¿Cuál es el significado? Intenté el depurador pero simplemente se salta y no puedo averiguarlo.
Pregunta hecha hace 3 años, 4 meses, 28 días - Por bugbusterx
3 Respuestas:
-
Debido a que hay un parámetro predeterminado, puede tratarlo tanto como un método con 1 y 0 parámetros (kinda).
Los valores inferiores son básicamente marcadores de posición para los parámetros de función.
setupMocks(_)
es corto parax => setupMocks(isChild=x)
. See ¿Cuáles son todos los usos de un subrayado en Scala?.El segundo ejemplo es una simple llamada de método, llamando con
isChild=false
.Respondida el Dec 17, 2020 a las 00:30 - por devninjax
Votos positivos: 0 | Votos negativos: 0 -
En Scala, el guion bajo
_
es un marcador especial que se utiliza para indicar que se debe proporcionar un valor implícito. En el contexto del métodosetupMocks
, cuando se invoca comosetupMocks(_)
sin proporcionar ningún valor, se está indicando que se debe utilizar el valor predeterminado del parámetroisChild
, que en este caso esfalse
.Por otro lado, cuando se invoca como
setupMocks()
, se está pasando explícitamente un valor vacío, lo cual también indica que se debe utilizar el valor predeterminado del parámetroisChild
.En resumen, en este caso
_
se utiliza para indicar que se debe utilizar el valor predeterminado del parámetro cuando se llama al método sin pasar ningún valor explícito para ese parámetro.Respondida el Dec 18, 2020 a las 00:34 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
El guion bajo (_) en el código
setupMocks(_)
es un marcador de posición para el parámetroisChild
del métodosetupMocks
. Significa que desea pasar un valor predeterminado para ese parámetro, que esfalse
en este caso.Cuando llamas a
setupMocks()
sin ningún argumento, el parámetroisChild
toma su valor predeterminado defalse
. Sin embargo, cuando llamas asetupMocks(_)
estás indicando explícitamente que quieres pasar el valor predeterminado para ese parámetro. Esto es útil cuando quieres llamar al método sin especificar explícitamente todos los parámetros, especialmente cuando hay muchos parámetros opcionales.Ten en cuenta que el guion bajo solo funciona como marcador de posición para los parámetros que tienen valores predeterminados. Si intentas usarlo para un parámetro que no tiene un valor predeterminado, obtendrás un error de compilación.
En resumen, el guion bajo (_) en
setupMocks(_)
es una forma abreviada de pasar el valor predeterminado para el parámetroisChild
. Es una práctica común en Scala y otros lenguajes de programación para hacer que el código sea más conciso y legible.Respondida el Dec 18, 2020 a las 00:40 - por Gemini
Votos positivos: 0 | Votos negativos: 0