Propiedades de listas: first y last
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 1 de 65.
Al trabajar con listas, a menudo necesitas acceder al primer o último elemento. En lugar de usar números de índice como [0] o [list.length - 1], Dart proporciona dos propiedades convenientes que hacen esto mucho más sencillo.
La propiedad .first te da el primer elemento de una lista, mientras que la propiedad .last te da el último elemento. Estas propiedades son más legibles y menos propensas a errores que calcular las posiciones de los índices.
List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];
String firstPlanet = planets.first; // 'Mercury'
String lastPlanet = planets.last; // 'Mars'Estas propiedades funcionan con cualquier lista que no esté vacía y gestionan automáticamente los cálculos de índices por ti. Esto hace que tu código sea más limpio y fácil de entender cuando necesitas trabajar con los elementos al principio o al final de tus listas.
Desafío
FácilCrea un programa que analice una lista de reproducción de música accediendo a la primera y última canción. Tu programa debe:
- Leer una entrada de cadena que represente el nombre de la lista de reproducción (playlist name)
- Leer múltiples entradas de cadena que representen títulos de canciones (la entrada terminará cuando recibas una cadena vacía)
- Usar la propiedad
.firstpara obtener la primera canción de la lista - Usar la propiedad
.lastpara obtener la última canción de la lista - Imprimir el análisis de la lista de reproducción en el formato exacto que se muestra a continuación
Por ejemplo, si el nombre de la lista es "My Favorites" y las canciones son "Bohemian Rhapsody", "Imagine", "Hotel California", tu programa debería mostrar:
Playlist: My Favorites
Total songs: 3
Opening track: Bohemian Rhapsody
Closing track: Hotel CaliforniaTu programa debe manejar listas de reproducción con cualquier número de canciones y usar las propiedades .first y .last para acceder a las pistas de apertura y cierre.
Hoja de referencia
Utiliza las propiedades .first y .last para acceder al primer y último elemento de una lista:
List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];
String firstPlanet = planets.first; // 'Mercury'
String lastPlanet = planets.last; // 'Mars'Estas propiedades son más legibles que usar números de índice como [0] o [list.length - 1] y funcionan con cualquier lista que no esté vacía.
Pruébalo tú mismo
import 'dart:io';
void main() {
// Leer el nombre de la lista de reproducción
String? playlistName = stdin.readLineSync();
// Leer canciones hasta encontrar una cadena vacía
List<String> songs = [];
String? song;
while ((song = stdin.readLineSync()) != null && song!.isNotEmpty) {
songs.add(song);
}
// TODO: Escribe tu código a continuación
// Usa songs.first y songs.last para obtener la pista de apertura y de cierre
// Mostrar el análisis de la lista de reproducción
print("Playlist: $playlistName");
print("Total songs: ${songs.length}");
// Imprimir las pistas de apertura y cierre aquí
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Manipulación avanzada de listas
Propiedades de listas: first y lastEstado de la lista: isEmpty y isNotEmptyInvertir una listaAñadir a una lista: insertEliminación en listas: removeWhereBúsqueda en una lista: indexOfOrdenar una listaMezclar una listaResumen - Organizador de listas4Manipulación avanzada de mapas
Iterar sobre un mapaComprobación de claves y valoresPropiedades del mapa: keys y valuesAdición condicional: putIfAbsentEliminar entradas de un mapaMapas anidadosResumen - Actualización de inventario2Operaciones funcionales con listas
Transformar con 'map'Filtrar con 'where'Uso de '.toList()'Comprobar condiciones con 'any'Condiciones con 'every'Búsqueda con 'firstWhere'Resumen - Filtrado de datos5Proyecto: Calculadora de carrito de compras
Configuración del proyectoAgregar artículos al carrito3Conjuntos
¿Qué es un Conjunto?Crear un ConjuntoAñadir y eliminar elementos de un ConjuntoComprobar elementos en un ConjuntoConvertir una lista en un ConjuntoUnión de ConjuntosIntersección de ConjuntosDiferencia de ConjuntosResumen - Lista de invitados única