Propriedades de Lista: first & last
Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 1 de 65.
Ao trabalhar com listas, você frequentemente precisa acessar o primeiro ou o último elemento. Em vez de usar números de índice como [0] ou [list.length - 1], o Dart fornece duas propriedades convenientes que tornam isso muito mais simples.
A propriedade .first fornece o primeiro elemento em uma lista, enquanto a propriedade .last fornece o último elemento. Essas propriedades são mais legíveis e menos propensas a erros do que calcular posições de índice.
List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];
String firstPlanet = planets.first; // 'Mercury'
String lastPlanet = planets.last; // 'Mars'Essas propriedades funcionam com qualquer lista não vazia e lidam automaticamente com os cálculos de índice para você. Isso torna seu código mais limpo e fácil de entender quando você precisa trabalhar com os elementos no início ou no fim de suas listas.
Desafio
FácilCrie um programa que analise uma playlist de música acessando a primeira e a última música. Seu programa deve:
- Ler uma entrada de string representando o nome da playlist
- Ler múltiplas entradas de string representando os títulos das músicas (a entrada terminará quando você receber uma string vazia)
- Usar a propriedade
.firstpara obter a primeira música na playlist - Usar a propriedade
.lastpara obter a última música na playlist - Imprimir a análise da playlist no formato exato mostrado abaixo
Por exemplo, se o nome da playlist for "My Favorites" e as músicas forem "Bohemian Rhapsody", "Imagine", "Hotel California", seu programa deve exibir:
Playlist: My Favorites
Total songs: 3
Opening track: Bohemian Rhapsody
Closing track: Hotel CaliforniaSeu programa deve lidar com playlists com qualquer número de músicas e usar as propriedades .first e .last para acessar as faixas de abertura e encerramento.
Folha de consulta
Use as propriedades .first e .last para acessar o primeiro e o último elementos de uma lista:
List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];
String firstPlanet = planets.first; // 'Mercury'
String lastPlanet = planets.last; // 'Mars'Essas propriedades são mais legíveis do que usar números de índice como [0] ou [list.length - 1] e funcionam com qualquer lista não vazia.
Experimente você mesmo
import 'dart:io';
void main() {
// Ler o nome da playlist
String? playlistName = stdin.readLineSync();
// Ler músicas até encontrar uma string vazia
List<String> songs = [];
String? song;
while ((song = stdin.readLineSync()) != null && song!.isNotEmpty) {
songs.add(song);
}
// TODO: Escreva seu código abaixo
// Use songs.first e songs.last para obter as faixas de abertura e encerramento
// Exibir a análise da playlist
print("Playlist: $playlistName");
print("Total songs: ${songs.length}");
// Imprimir as faixas de abertura e encerramento aqui
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Manipulação Avançada de Listas
Propriedades de Lista: first & lastEstado da Lista: isEmpty & isNotEmptyInvertendo uma ListaAdicionando a uma Lista: insertRemoção em Listas: removeWhereBuscando em uma Lista: indexOfOrdenando uma ListaEmbaralhando uma ListaRecapitulação - Organizador de Listas4Manipulação Avançada de Mapas
Iterando sobre um MapVerificando Chaves e ValoresPropriedades do Map: keys & valuesAdição Condicional: putIfAbsentRemovendo Entradas de um MapMaps AninhadosRecapitulação - Atualização de Inventário2Operações Funcionais em Listas
Transformando com 'map'Filtrando com 'where'Usando '.toList()'Verificando Condições com 'any'Condições com 'every'Encontrando com 'firstWhere'Recapitulação - Filtragem de Dados5Projeto: Cálculo de Carrinho de Compras
Configuração do ProjetoAdicionando Itens ao Carrinho3Conjuntos
O que é um Conjunto?Criando um ConjuntoAdicionando e Removendo de ConjuntosVerificando Elementos em um ConjuntoConvertendo uma Lista para um ConjuntoUnião de ConjuntosInterseção de ConjuntosDiferença de ConjuntosRecapitulação - Lista de Convidados Únicos