Argumentos Por Defecto Y Nombrados

En este tutorial aprenderás a como proveer argumentos por defecto o especificar sus nombres en la llamada de una función.

Argumentos Por Defecto

Para declarar una función con valores por defecto en sus parámetros, usa el operador = en la declaración.

Por ejemplo

Supón que tenemos un arreglo con los nombres de unos clientes y deseamos crear una función que retorne un elemento de acuerdo al índice.

Además de ello, deseamos que retorne el ítem de la posición cero, si el argumento no es proveído.

En el siguiente código ilustramos el caso:

val customers = arrayOf("Carlos", "Miguel", "Ximena")

fun loadCustomer(limit: Int = 0): String {
    return customers[limit]
}

fun main() {
    println("Cliente:${loadCustomer()}")
}

Como ves, al asignar el parámetro con un valor en su declaración, tienes la posibilidad de omitir el valor del argumento en la llamada de loadCustomer().

El resultado sería:

Cliente:Carlos

Modifiquemos el ejemplo para explorar otra situación.

Añade un parámetro a la función de tipo Int, llamado length, para que determine la cantidad de caracteres a mostrar del nombre del cliente.

fun loadCustomer(limit: Int = 0, length: Int): String {
    return customers[limit].take(length)
}

Si intentas llamar a la función loadCustomer(), pasando tan solo el argumento para length, obtendrás un error de compilación.

No value passed for parameter 'length'
Default arguments en Kotlin

Esto se debe a que existe una correlación de cada parámetro, con el orden de sus argumentos al momento de compilarlos.

Y aunque pareciera que fuera opcional, el parámetro limit está siendo pedido para conservar dicho orden.

La siguiente sección nos provee la solución.

Argumentos Nombrados

Es posible especificar el nombre de los argumentos que deseas usar en la llamada de tu función.

Para ello usa la sintaxis de argumentos nombrados: nombreParametro = valorArgumento.

Por ejemplo

Resolvamos el problema de la sección anterior.

Llama a loadCustomer() pasando solo el valor de length con la sintaxis para argumentos nombrados:

fun loadCustomer(limit: Int = 0, length: Int): String {
    return customers[limit].take(length)
}

fun main() {
    println("Cliente:${loadCustomer(length = 3)}")
}

Con esta solución, el compilador es capaz de obtener el valor predeterminado de limit e incorporar el argumento del segundo parámetro.

Al ejecutar la aplicación el resultado serían los 3 primeros caracteres del cliente en la posición por defecto 0.

Cliente:Car

Esto aumenta la flexibilidad del uso de la función al usar los parámetros estrictamente necesarios en una situación.

¿Qué Sigue?

En este tutorial viste cómo crear funciones con argumentos por defecto y nombrados. En la siguiente sección aprenderás a usar funciones con argumentos variables.

Únete Al Discord De Develou

Si tienes problemas con el código de este tutorial, preguntas, recomendaciones o solo deseas discutir sobre desarrollo Android conmigo y otros desarrolladores, únete a la comunidad de Discord de Develou y siéntete libre de participar como gustes. ¡Te espero!