En este tema, aprenderemos sobre las funciones y métodos en Dart, que son fundamentales para estructurar y organizar el código de manera eficiente. Las funciones y métodos permiten encapsular lógica reutilizable, facilitando la lectura y el mantenimiento del código.

Contenido

Definición de Funciones

Una función en Dart es un bloque de código que realiza una tarea específica. Se define utilizando la palabra clave void (si no retorna un valor) o el tipo de dato que retorna.

Ejemplo de Función Simple

void saludar() {
  print('¡Hola, Mundo!');
}

void main() {
  saludar(); // Llamada a la función
}

Explicación

  • void saludar() { ... }: Define una función llamada saludar que no retorna ningún valor.
  • print('¡Hola, Mundo!');: Imprime un mensaje en la consola.
  • saludar();: Llama a la función saludar.

Parámetros de Funciones

Las funciones pueden aceptar parámetros para recibir datos de entrada. Los parámetros pueden ser posicionales o nombrados.

Parámetros Posicionales

void saludar(String nombre) {
  print('¡Hola, $nombre!');
}

void main() {
  saludar('Carlos'); // Llamada a la función con un argumento
}

Parámetros Nombrados

void saludar({String nombre = 'Mundo'}) {
  print('¡Hola, $nombre!');
}

void main() {
  saludar(nombre: 'Carlos'); // Llamada a la función con un argumento nombrado
}

Explicación

  • String nombre: Define un parámetro posicional de tipo String.
  • {String nombre = 'Mundo'}: Define un parámetro nombrado con un valor por defecto.

Funciones Anónimas

Las funciones anónimas (o lambdas) son funciones sin nombre que se pueden asignar a variables o pasar como argumentos a otras funciones.

Ejemplo de Función Anónima

void main() {
  var lista = ['Carlos', 'Ana', 'Luis'];
  lista.forEach((nombre) {
    print('¡Hola, $nombre!');
  });
}

Explicación

  • (nombre) { ... }: Define una función anónima que toma un parámetro nombre.
  • lista.forEach(...): Aplica la función anónima a cada elemento de la lista.

Métodos en Clases

Los métodos son funciones definidas dentro de una clase y se utilizan para operar sobre los datos de la clase.

Ejemplo de Método en Clase

class Persona {
  String nombre;

  Persona(this.nombre);

  void saludar() {
    print('¡Hola, $nombre!');
  }
}

void main() {
  var persona = Persona('Carlos');
  persona.saludar(); // Llamada al método
}

Explicación

  • class Persona { ... }: Define una clase llamada Persona.
  • String nombre;: Define una propiedad de la clase.
  • Persona(this.nombre);: Constructor de la clase.
  • void saludar() { ... }: Define un método que imprime un saludo.

Ejercicios Prácticos

Ejercicio 1: Función de Suma

Escribe una función que tome dos números como parámetros y retorne su suma.

int sumar(int a, int b) {
  return a + b;
}

void main() {
  print(sumar(3, 4)); // Debería imprimir 7
}

Ejercicio 2: Función de Saludo Personalizado

Escribe una función que tome un nombre y un saludo como parámetros y retorne un mensaje personalizado.

String saludoPersonalizado(String nombre, String saludo) {
  return '$saludo, $nombre!';
}

void main() {
  print(saludoPersonalizado('Carlos', 'Buenos días')); // Debería imprimir 'Buenos días, Carlos!'
}

Ejercicio 3: Método en Clase

Crea una clase Coche con una propiedad marca y un método mostrarMarca que imprima la marca del coche.

class Coche {
  String marca;

  Coche(this.marca);

  void mostrarMarca() {
    print('La marca del coche es $marca');
  }
}

void main() {
  var coche = Coche('Toyota');
  coche.mostrarMarca(); // Debería imprimir 'La marca del coche es Toyota'
}

Conclusión

En esta sección, hemos aprendido sobre las funciones y métodos en Dart, incluyendo cómo definir funciones, trabajar con parámetros, utilizar funciones anónimas y crear métodos dentro de clases. Estos conceptos son fundamentales para escribir código organizado y reutilizable.

En el próximo tema, exploraremos la Programación Orientada a Objetos en Dart, donde profundizaremos en el uso de clases y objetos para estructurar aplicaciones más complejas.

Curso de Desarrollo con Flutter

Módulo 1: Introducción a Flutter

Módulo 2: Conceptos Básicos de Programación en Dart

Módulo 3: Widgets en Flutter

Módulo 4: Gestión de Estado

Módulo 5: Navegación y Enrutamiento

Módulo 6: Redes y APIs

Módulo 7: Persistencia y Almacenamiento

Módulo 8: Conceptos Avanzados de Flutter

Módulo 9: Pruebas y Depuración

Módulo 10: Despliegue y Mantenimiento

Módulo 11: Flutter para Web y Escritorio

© Copyright 2024. Todos los derechos reservados