Funciones increibles que debes conocer al trabajar con Dart

Funciones increibles que debes conocer al trabajar con Dart

En los post anteriores sobre Dart, hablamos sobre las Collections. Hablamos sobre Lists,Maps y sets. Y en esta oportunidad vamos a hablar sobre funciones asombrosas y que nos pueden ayudar en muchos casos.

Nota:En este post usamos varios elementos que probablemente quieras repasar, como las funciones an贸nimas. Si es tu primera vez leyendo esta serie de art铆culos puedes aqu铆 debajo te dejo el link para que leas sobre funciones en Dart.

Funciones en Dart

Map

The map function exists in many programming languages, and Dart is not an exception. This function creates a new list after transform every element of the previous list. This function takes as a parameter an anonymous function. Let’s see an example.

var list = List.of({1,2,3,4});
var mappedList = list.map( (number) => number *2);
print(mappedList);

Esta funci贸n existe en muchos lenguajes de programaci贸n y dart no es la excepci贸n. Esta funci贸n crea una nueva lista despu茅s de transformar cada elemento de la lista anterior. Esta funci贸n recibe como par谩metro una funci贸n an贸nima. Veamos un ejemplo.

En este ejemplo, hemos creado una funci贸n an贸nima que tiene un n煤mero como par谩metro y hemos multiplicado este n煤mero por dos. El resultado de la funci贸n es
(2,4,6,8).

Sort

Muchas veces necesitamos recibir una lista desde el servidor y mostrarla al usuario. Pero 驴qu茅 ocurre si necesitamos aplicar algunos filtros y ordenarla de forma ascendente? Esta funci贸n est谩 aqu铆 para ayudarnos con eso, veamos un ejemplo.

var randomNumbers = List.of({14, 51, 23, 45, 6, 3, 22, 1});
randomNumbers.sort();
print(randomNumbers);

El resultado es el siguiente.

[1, 3, 6, 14, 22, 23, 45, 51]

Generate

La funci贸n generate es genial cuando necesitas crear una lista de n煤meros para hacer una prueba r谩pida. Toma como par谩metro un n煤mero el cual indica el tama帽o de la lista y una funci贸n an贸nima.

var generatedList = List.generate(10, (number) => number * Random().nextInt(50));
  print(generatedList);

Dentro de la funci贸n an贸nima obtenemos un n煤mero y lo multiplicamos por un n煤mero aleatorio entre 0 y 50.

Take

Ya solo con su nombre en ingl茅s te explica que hace esta funci贸n simplemente toma los primeros elementos de la lista. Puede ser 煤til cuando tengas una lista de competidores y quieras solo obtener el top tres de todos los competidores.

var list = List.from([1,2,3,4,5,6]);
var topThreeList = list.take(3);
print(topThreeList);

El resultado es: 1,2,3

Skip

Esta funci贸n es el opuesto de la funci贸n Take, est谩 ignora la cantidad de elementos que se le indique. En caso de que se le indiquen 3 elementos obviara los primeros tres elementos de la lista.

var list = List.from([1,2,3,4,5,6]);
var skipList = list.skip(3);
print(skipList);

El resultado es: 4,5,6

Where

Esta funci贸n es una de mis favoritas ya que nos ayuda a crear una lista con los elementos que cumplan con el predicado que se le pasa como par谩metro. Esto quiere decir que solo los elementos que cumplan con la condici贸n dada se agregaran a la lista.

Digamos que tenemos una lista aleatoria de n煤meros en caso de que queramos una lista con solo numeros pares bastar谩 realizar esa comprobaci贸n en la funci贸n an贸nima. Veamos el siguiente ejemplo.

var randomNumbers = List.of({14, 51, 23, 45, 6, 3, 22, 1});
var evenNumbers = randomNumbers.where((number => number.isEven));
print(evenNumbers);

El resultado del ejemplo anterior es el siguiente:
14,6,22.

Un buen tip

Estas funciones pueden combinarse para lograr una mejor soluci贸n. Puedes combinar la funci贸n where con la funci贸n sort para obtener los n煤meros pares ordenados de forma ascendente por ejemplo.

var randomNumbers = List.of({14, 51, 23, 45, 6, 3, 22, 1});
var evenNumbers = randomNumbers.where((number) => number.isEven);
evenNumbers = evenNumbers.toList()..sort();
print(evenNumbers);

En este ejemplo tomamos solamente los n煤meros pares de la lista randomNumberList, luego convertimos esos n煤meros a una Lista y finalmente usamos el operador de cascada .. para ordenar la lista de forma ascendente.

El resultado final es: [6, 14, 22]

Eso es todo

Espero que te haya gustado. Estoy creando nuevas CodingSlices sobre Flutter en Instagram, puedes seguirme en @codingpizza y en Twitter como @coding__pizza para aprender sobre Flutter.

Ahora es tu turno

Puedes probar estos conceptos en Entornos de desarrollo (IDE) como Intellij Idea Community, que es gratis e instalar el plugin de Dart, si te gusta Visual Studio Code tambien puedes probar estos conceptos en 茅l y por 煤ltimo, si prefieres algo online puedes utilizar Dartpad.

驴Quieres saber m谩s sobre Dart?

Si te ha gustado este post y est谩s interesado en aprender Dart, actualmente estoy escribiendo m谩s art铆culos como este en un ebook, el cual es un curso b谩sico de Dart que te ayudar谩 a tener un buen conocimiento que luego podr谩s utilizar para empezar con Flutter ;). Puedes darte de alta en este link ya que el ebook ser谩 totalmente gratis.

Post anterior

Si est谩s interesado en m谩s post como este puedesrevisar mis otros art铆culos sobre Dart.

Sin comentarios

Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si contin煤a navegando est谩 dando su consentimiento para la aceptaci贸n de las mencionadas cookies y la aceptaci贸n de nuestra pol铆tica de cookies, pinche el enlace para mayor informaci贸n.

ACEPTAR
Aviso de cookies