Introducción a Kotlin

1

Curso de Kotlin desde Cero para Desarrollo de Aplicaciones

2

Java Virtual Machine: Funcionamiento y Ventajas

3

Introducción a Kotlin y sus ventajas en desarrollo Android

Configuración del entorno

4

Instalación de IntelliJ IDEA Community Edition en Windows, Mac y Linux

5

Instalación de IntelliJ Idea Community en Linux

6

Configuración de Kotlin en Visual Studio Code

Hola mundo Kotlin

7

Estructura y Funcionalidad de Archivos en un Proyecto Kotlin

8

Variables en Kotlin: Lectura, Escritura y Constantes

9

Tipos de Variables y Operaciones en Kotlin

10

Tipos de Datos y Objetos en Kotlin: Ventajas y Funcionalidades

11

Operadores y Funciones en Kotlin: Uso y Extensión

12

Programación Funcional en Kotlin: Paradigmas y Variables Inmutables

13

Estructuras de Control: Uso de IF en Kotlin

14

Estructura de Control "When" en Kotlin: Uso y Ejemplos Prácticos

Conceptos básicos de Kotlin

15

Bucle while y do-while en Kotlin: Condicionales y Ejecución

16

Ciclo For y Funciones de Extensión en Kotlin

17

Null Safety en Kotlin: Evita Errores por Referencias Nulas

18

Gestión de Tipos Nulables en Kotlin y Buenas Prácticas

19

Manejo de Excepciones en Kotlin: Try-Catch y Lanzamiento de Errores

20

Uso del Operador Elvis en Kotlin para Nulables

Collections en Kotlin

21

Listas y Arrays en Kotlin: Tipos y Operaciones Básicas

22

Ordenar y Manipular Listas en Kotlin: Funciones Clave y Ejemplos

23

Uso de Maps en Kotlin: Clave-Valor y Tipos Mutable e Inmutable

24

Sets en Kotlin: Uso, Eliminación y Obtención de Elementos

Libera el potencial de las funciones

25

Creación de funciones propias en Kotlin

26

Creación de Funciones en Kotlin: Uppercase y Lowercase Aleatorios

27

Parámetros Nombrados y por Defecto en Funciones de Programación

28

Creación y Uso de Lambdas en Kotlin

29

Funciones de Alto Orden y Lambdas en Kotlin

Scope functions

30

Uso de la función let en Kotlin para variables nulas

31

Uso de la función "with" en Kotlin para manejar propiedades

32

Uso de la Función Run para Operaciones en Listas en Kotlin

33

Uso de la función apply para manejar tipos anulables en Kotlin

34

Uso de la Función Also en Kotlin para Encadenamiento de Operaciones

Proyecto: Bola 8 mágica

35

Creación de Menú Interactivo en Kotlin para Proyecto Bola Ocho

36

Funcionalidades avanzadas en Kotlin: Menús y manejo de respuestas

37

Desarrollo de Proyectos con Kotlin para Android y Backend

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Parámetros Nombrados y por Defecto en Funciones de Programación

27/37
Recursos

¿Qué son los parámetros nombrados en funciones?

Los parámetros nombrados son una técnica en programación que permite hacer que nuestro código sea más claro y entendible. Al usar parámetros nombrados, cada argumento que pasamos a una función es vinculado explícitamente a un nombre de parámetro utilizando un símbolo de asignación (=). Por ejemplo, si tienes una función que acepta dos parámetros de tipo string, como nombre y apellido, puedes llamar a esa función de la siguiente manera:

imprimirNombre(nombre = "Giuseppe", apellido = "Betty")

Al usar parámetros nombrados, nuestros compañeros que revisen el código entenderán claramente qué valor corresponde a cada parámetro, sin confusiones.

¿Cómo definir parámetros por defecto?

En ciertas ocasiones, algunas funciones podrían recibir muchos parámetros o hay parámetros que no queremos que cambien a menos que sea necesario. En este caso, podemos utilizar los parámetros por defecto. La idea es asignar un valor por defecto a un parámetro que no siempre será proporcionado por el usuario de la función.

Por ejemplo, en una función para imprimir un nombre completo, podrías tener una variable que almacene un segundo nombre:

fun imprimirNombreCompleto(nombre: String, apellido: String, segundoNombre: String = "") {
    println("Mi nombre completo es $nombre $segundoNombre $apellido")
}

En este caso, si el segundo nombre no es proporcionado, la función utilizará una cadena vacía ("") como valor por defecto. Al llamar a la función, podrías simplemente omitir el tercer argumento:

imprimirNombreCompleto("Giuseppe", "Betty")

Esto hace que las funciones sean más flexibles y que el código sea más limpio, ya que no necesitarás proporcionar todos los parámetros si algunos de ellos tienen un valor por defecto que ya es útil.

Beneficios de utilizar parámetros nombrados y por defecto

Hacer uso de parámetros nombrados y por defecto trae varios beneficios al código:

  • Legibilidad: Proporciona claridad sobre qué valores se están asignando a cada parámetro, facilitando la comprensión del código, especialmente en funciones con varios parámetros del mismo tipo.

  • Mantenimiento: Facilita el mantenimiento del código, ya que un posible cambio en el orden o en la cantidad de parámetros requeridos no afectará la compatibilidad.

  • Flexibilidad: Los parámetros por defecto permiten que una función maneje una variedad de llamadas sin necesidad de sobrecarga, ahorrando tiempo y esfuerzo de programación.

Usando estas técnicas, optimizarás tu código y mejorarás la experiencia de otros desarrolladores que trabajen junto a ti. ¡Continúa explorando y aplicando estos conceptos en tus futuros proyectos!

Aportes 10

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Parámetros por defecto
Una de las características de Kotlin es la posibilidad de trabajar con funciones con parámetros con valores por defecto. Tomemos como ejemplo la función sum que tiene dos parámetros y le agregamos un parámetro más:

fun sum(x:Int, y:Int, z:Int): Int{
   return x + y + z
}

Se podría asignar un valor a una de las variables:

fun sum(x:Int, y:Int, z:Int = 0): Int{
   return x + y + z
}

Luego la función sum, podría llamarse de las siguientes maneras:

sum(3, 2, 1)
sum(2, 4)

En ambos casos funciona en forma adecuada. Esto tiene una ventaja pues permite crear funciones con parámetros por defecto, con lo cual evita realizar sobre carga de funciones. En lenguajes como Java no hay parámetros por defecto, con lo cual muchas veces se tiene que sobre cargar los métodos.

Parámetros con nombres
Que sucede si queremos imprimir determinados parámetros que no sean contiguos, por ejemplo, el primero y el tercero.

Generamos una nueva función:

fun printDetails(name:String,email:String = "", phone:String){
 println("name: $name - email: $email - phone: $phone")
}

Si hacemos email con un valor por defecto:

printDetails("Juan", "123 123")

Esta función nos genera erro, pues el tercer valor phone, no tiene asignado un valor por defecto y es requerido. Por otro lado, por la forma de la variable, el valor indicado corresponde a phone, más el método no sabe como distinguir que es el tercer parámetro. Esto se soluciona utilizando el valor de los parámetros:

printDetails("Juan", phone="123 123")

Al tener el nombre de los parámetros, se pueden ingresar los parámetros en un orden indistinto:

printDetails(name="Juan", phone = "123 123")
printDetails(phone = "123 123", name="Juan" )

Esto es util cuando tengo funciones con múltiples parámetros. Usar el nombre de los parámetros permite ser más expresivo con nuestro código.

No es recomendable tener funciones con cinto o seis parámetros, para esto es recomendable tener un objeto que agrupe este conjunto de parámetros, pero en caso de que tengamos este tipo de funciones. El uso de los nombres es muy útil.

fuente:https://www.clubdetecnologia.net/cursos/programacion-con-kotlin/funciones-default-y-parametros-con-nombre/

Comparto mi solucion para quitar el espacio adicional en caso de que segundo nombre este vacío =D

fun printWholeName(firstName: String, secondName: String = "", surName: String) {
    println("My name is $firstName ${if (secondName.isNotEmpty()) "$secondName " else ""}$surName")
}



para la funcion imprimirNombre, si queremos usar otro parametro como el segundo nombre, lo que podriamos hacer, es una sobrecarga de metodos, donde le pasamos el parametro segundo nombre

Podemos retornar o imprimir el nombre de forma condicional dependiendo si se recibe el segundo nombre o no dentro de los parámetros.

fun printName(firstName : String, middleName : String  = "", lastName : String) {
    val fullName = if (middleName.isNotEmpty()) "$firstName $middleName $lastName" else "$firstName $lastName"
    println(fullName)
}
```js fun main() { printName(name = "Leo", lastName = "Messi") printNameII(name = "Leo", lastName = "Messi") } fun printName(name: String, lastName: String) { println("Mi name is $name and my lastname is $lastName") } fun printNameII(name: String, middleName: String = "", lastName: String) { println("Mi full name is $name $middleName $lastName") } ```fun main() { *printName*(name = "Leo", lastName = "Messi") *printNameII*(name = "Leo", lastName = "Messi") } fun printName(name: String, lastName: String) { *println*("Mi name is $name and my lastname is $lastName") } fun printNameII(name: String, middleName: String = "", lastName: String) { *println*("Mi full name is $name $middleName $lastName") }

Código de la clase

fun main(args : Array<String>){
    //parametros nombrados, utiles cuando los datos son del mismo tipo
    imprimirNombre(nombre = "David", apellido = "Cervantes")

}

//podemos definir valores por defecto
fun imprimirNombre(nombre: String, segundoNombre:String = "", apellido: String) {
    println(nombre + " " + segundoNombre + " " + apellido)
}
fun main(args : Array<String>){
    imprimirNombre(nombre = "Cristian", apellido = "Restrepo")
}

fun imprimirNombre(nombre: String, segundoNombre:String = "", apellido: String) {
    println(nombre + " " + segundoNombre + " " + apellido)
}

Creo que algo importante mencionar con los parámetros por default, es que si no se va a usar alguno, se deben usar los parámetros nombrados.

Si lo usan solo así, marcará error.

imprimirNombre("Hector", "Hernandez")

Un pequeño aporte sobre esta clase

fun main(args: Array<String>) {
    var result = add(5, 10)
    println(result)
}
fun add(firsNumber: Int, secondNumber: Int) : Int{
    return firsNumber + secondNumber
}