Menu
Coddy logo textTech

Свойства списка: first и last

Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 1 из 65.

При работе со списками часто возникает необходимость получить доступ к первому или последнему элементу. Вместо использования индексов, таких как [0] или [list.length - 1], Dart предоставляет два удобных свойства, которые значительно упрощают эту задачу.

Свойство .first возвращает первый элемент в списке, в то время как свойство .last возвращает последний элемент. Эти свойства более читаемы и менее подвержены ошибкам, чем вычисление позиций по индексу.

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

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

Эти свойства работают с любым непустым списком и автоматически выполняют вычисления индексов за вас. Это делает ваш код чище и понятнее, когда вам нужно работать с элементами в начале или в конце ваших списков.

challenge icon

Задание

Легко

Создайте программу, которая анализирует музыкальный плейлист, обращаясь к первой и последней песням. Ваша программа должна:

  1. Прочитать строковый ввод, представляющий название плейлиста
  2. Прочитать несколько строковых вводов, представляющих названия песен (ввод закончится, когда вы получите пустую строку)
  3. Использовать свойство .first, чтобы получить первую песню в плейлисте
  4. Использовать свойство .last, чтобы получить последнюю песню в плейлисте
  5. Вывести анализ плейлиста в точном формате, показанном ниже

Например, если название плейлиста — "My Favorites", а песни — "Bohemian Rhapsody", "Imagine", "Hotel California", ваша программа должна вывести:

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

Ваша программа должна обрабатывать плейлисты с любым количеством песен и использовать свойства .first и .last для доступа к открывающему и закрывающему трекам.

Шпаргалка

Используйте свойства .first и .last для доступа к первому и последнему элементам списка:

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

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

Эти свойства более читабельны, чем использование индексов, таких как [0] или [list.length - 1], и работают с любым непустым списком.

Попробуйте сами

import 'dart:io';

void main() {
  // Прочитать название плейлиста
  String? playlistName = stdin.readLineSync();
  
  // Читать песни до пустой строки
  List<String> songs = [];
  String? song;
  while ((song = stdin.readLineSync()) != null && song!.isNotEmpty) {
    songs.add(song);
  }
  
  // TODO: Напишите свой код ниже
  // Используйте songs.first и songs.last, чтобы получить первый и последний треки
  
  // Вывести анализ плейлиста
  print("Playlist: $playlistName");
  print("Total songs: ${songs.length}");
  // Вывести первый и последний треки здесь
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком