Menu
CoddyTech

Thuộc tính danh sách: đầu và cuối

Thuộc phần Logic và luồng điều khiển trong hành trình Dart của Coddy. Bài học 1 trên 65.

Khi làm việc với danh sách (list), bạn thường cần truy cập phần tử đầu tiên hoặc cuối cùng. Thay vì dùng chỉ số như [0] hoặc [list.length - 1], Dart cung cấp hai thuộc tính tiện lợi giúp việc này đơn giản hơn nhiều.

Thuộc tính .first cho bạn phần tử đầu tiên trong danh sách, còn thuộc tính .last cho bạn phần tử cuối cùng. Các thuộc tính này dễ đọc hơn và ít gây lỗi hơn so với việc tính toán vị trí chỉ số.

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

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

Các thuộc tính này hoạt động với mọi danh sách không rỗng và tự động tính chỉ số cho bạn. Nhờ vậy, code của bạn gọn gàng và dễ hiểu hơn khi cần làm việc với các phần tử ở đầu hoặc cuối danh sách.

challenge icon

Thử thách

Dễ

Tạo một chương trình phân tích danh sách phát nhạc bằng cách truy cập bài hát đầu tiên và cuối cùng. Chương trình của bạn cần:

  1. Đọc một chuỗi (string) đầu vào đại diện cho tên danh sách phát
  2. Đọc nhiều chuỗi đầu vào đại diện cho tên bài hát (đầu vào sẽ kết thúc khi bạn nhận được một chuỗi rỗng)
  3. Dùng thuộc tính (property) .first để lấy bài hát đầu tiên trong danh sách phát
  4. Dùng thuộc tính .last để lấy bài hát cuối cùng trong danh sách phát
  5. In ra phần phân tích danh sách phát theo đúng định dạng bên dưới

Ví dụ: nếu tên danh sách phát là "My Favorites" và các bài hát là "Bohemian Rhapsody", "Imagine", "Hotel California", chương trình của bạn sẽ in ra:

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

Chương trình của bạn cần xử lý danh sách phát có số lượng bài hát bất kỳ và dùng thuộc tính .first và .last để truy cập bài hát mở đầu và kết thúc.

Tự làm thử

import 'dart:io';

void main() {
  // Đọc tên danh sách phát
  String? playlistName = stdin.readLineSync();
  
  // Đọc các bài hát cho đến khi gặp chuỗi rỗng
  List<String> songs = [];
  String? song;
  while ((song = stdin.readLineSync()) != null && song!.isNotEmpty) {
    songs.add(song);
  }
  
  // TODO: Viết code của bạn bên dưới
  // Dùng songs.first và songs.last để lấy bài hát mở đầu và kết thúc
  
  // In ra kết quả phân tích danh sách phát
  print("Playlist: $playlistName");
  print("Total songs: ${songs.length}");
  // In bài hát mở đầu và kết thúc tại đây
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng điều khiển

Tự luyện tập: Trình biên dịch Dart online