Menu
Coddy logo textTech

Proprietà delle liste: primo e ultimo

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 1 di 65.

Quando lavori con le liste, spesso devi accedere al primo o all’ultimo elemento. Invece di usare numeri di indice come [0] o [list.length - 1], Dart fornisce due comode proprietà che semplificano molto questa operazione.

La proprietà .first ti restituisce il primo elemento di una lista, mentre la proprietà .last ti restituisce l’ultimo elemento. Queste proprietà sono più leggibili e meno soggette a errori rispetto al calcolo delle posizioni degli indici.

List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];

String firstPlanet = planets.first;   // 'Mercury'
String lastPlanet = planets.last;     // 'Mars'

Queste proprietà funzionano con qualsiasi lista non vuota e gestiscono automaticamente i calcoli degli indici. In questo modo, il tuo codice è più pulito e facile da capire quando devi lavorare con gli elementi all'inizio o alla fine delle tue liste.

challenge icon

Sfida

Facile

Crea un programma che analizzi una playlist musicale accedendo alla prima e all’ultima canzone. Il tuo programma dovrebbe:

  1. Leggere un input stringa che rappresenta il nome della playlist
  2. Leggere più input stringa che rappresentano i titoli delle canzoni (l’input terminerà quando riceverai una stringa vuota)
  3. Usare la proprietà .first per ottenere la prima canzone della playlist
  4. Usare la proprietà .last per ottenere l’ultima canzone della playlist
  5. Stampare l’analisi della playlist nel formato esatto mostrato qui sotto

Per esempio, se il nome della playlist è "My Favorites" e le canzoni sono "Bohemian Rhapsody", "Imagine", "Hotel California", il tuo programma dovrebbe produrre:

Playlist: My Favorites
Total songs: 3
Opening track: Bohemian Rhapsody
Closing track: Hotel California

Il tuo programma deve gestire playlist con qualsiasi numero di canzoni e usare le proprietà .first e .last per accedere alla prima e all’ultima traccia.

Provalo tu

import 'dart:io';

void main() {
  // Leggi il nome della playlist
  String? playlistName = stdin.readLineSync();
  
  // Leggi i brani fino a una stringa vuota
  List<String> songs = [];
  String? song;
  while ((song = stdin.readLineSync()) != null && song!.isNotEmpty) {
    songs.add(song);
  }
  
  // TODO: Scrivi il tuo codice qui sotto
  // Usa songs.first e songs.last per ottenere il brano iniziale e quello finale
  
  // Mostra l'analisi della playlist
  print("Playlist: $playlistName");
  print("Total songs: ${songs.length}");
  // Stampa qui il brano iniziale e quello finale
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Dart online