English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este artículo, aprenderá sobre parámetros predeterminados y parámetros de nombre con la ayuda de ejemplos.
En Kotlin, se puede proporcionar un valor predeterminado para los parámetros en la definición de la función.
Si se llama a la función pasando parámetros, estos se utilizan como parámetros. Pero si se llama a la función sin pasar parámetros, se utilizan los parámetros predeterminados.
Uno: Se pasaron todos los parámetros
La función foo() tiene dos parámetros. Los parámetros tienen valores predeterminados. Sin embargo, foo() se llama pasando dos parámetros en el programa anterior. Por lo tanto, no se utilizan los parámetros predeterminados.
En la función foo(), los valores de letter y number son 'x' y 2.
Dos: No se pasaron todos los parámetros, solo uno
Aquí, se pasa solo un parámetro (el primero) a la función foo(). Por lo tanto, el primer parámetro utiliza el valor pasado a la función. Sin embargo, el segundo parámetro number adoptará el valor predeterminado, ya que no se pasó el segundo parámetro durante la llamada a la función.
En la función foo(), los valores de letter y number son 'y' y 15.
Tres: No se pasaron parámetros
Aquí, se llama a la función foo() sin pasar ningún parámetro. Por lo tanto, ambos parámetros utilizan sus valores predeterminados.
En la función foo(), los valores de letter y number son 'a' y 15.
fun displayBorder(character: Char = '=', length: Int = 15) { for (i in 1..length) { print(character) } } fun main(args: Array<String>) { println("La salida sin pasar parámetros:") displayBorder() println("\n\n'*' Como primer parámetro.") println("La salida al pasar el primer parámetro:") displayBorder('*') println("\n\n'*' Usado como primer parámetro.") println("5Usado como segundo parámetro.") println("La salida al pasar dos parámetros al mismo tiempo:") displayBorder('*', 5) }
La salida del programa cuando se ejecuta es:
La salida sin pasar parámetros: =============== '*' Como primer parámetro. La salida al pasar el primer parámetro: *************** '*' Como primer parámetro. 5Como segundo parámetro. Al pasar dos parámetros al mismo tiempo, la salida es: *****
Antes de discutir los parámetros de nombre, consideremos algunas modificaciones en el código anterior:
fun displayBorder(character: Char = '=', length: Int = 15) { for (i in 1..length) { print(character) } } fun main(args: Array<String>) { displayBorder(5) }
Aquí, intentamos pasar el segundo parámetro al función displayBorder() y usar el parámetro predeterminado para el primer parámetro. Sin embargo, este código generará un error de uso. Esto se debe a que el compilador considera que estamos intentando proporcionar5(valor de Int).
Para resolver esta situación, se puede utilizar parámetros de nombre. El método es el siguiente:
fun displayBorder(character: Char = '=', length: Int = 15) { for (i in 1..length) { print(character) } } fun main(args: Array<String>) { displayBorder(length = 5) }
La salida del programa cuando se ejecuta es:
=====
En el programa anterior, utilizamos argumentos nombrados (length = 5)para especificar que el valor de este debe utilizarse en la definición de la función length (independiente de la posición de los argumentos reales).
El primer carácter del parámetro se usa por defecto en el programa '='.