리스트 속성: first 및 last
Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨 — 65개 중 1번째.
리스트를 작업할 때, 첫 번째 또는 마지막 요소에 접근해야 하는 경우가 많습니다. [0] 또는 [list.length - 1]과 같은 인덱스 번호를 사용하는 대신, Dart는 이를 훨씬 더 간단하게 만들어주는 두 가지 편리한 속성을 제공합니다.
.first 속성은 리스트의 첫 번째 요소를 제공하며, .last 속성은 마지막 요소를 제공합니다. 이러한 속성들은 인덱스 위치를 계산하는 것보다 가독성이 더 좋고 오류가 발생할 가능성이 적습니다.
List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];
String firstPlanet = planets.first; // 'Mercury'
String lastPlanet = planets.last; // 'Mars'이러한 속성들은 비어 있지 않은 모든 리스트에서 작동하며 인덱스 계산을 자동으로 처리해 줍니다. 덕분에 리스트의 시작이나 끝부분에 있는 요소를 다뤄야 할 때 코드가 더 깔끔해지고 이해하기 쉬워집니다.
챌린지
쉬움음악 재생 목록의 첫 번째 곡과 마지막 곡에 접근하여 이를 분석하는 프로그램을 작성하세요. 프로그램의 요구 사항은 다음과 같습니다:
- 재생 목록 이름을 나타내는 문자열 입력을 읽습니다.
- 곡 제목을 나타내는 여러 문자열 입력을 읽습니다 (빈 문자열이 입력되면 입력이 종료됩니다).
.first속성을 사용하여 재생 목록의 첫 번째 곡을 가져옵니다..last속성을 사용하여 재생 목록의 마지막 곡을 가져옵니다.- 아래에 표시된 것과 정확히 일치하는 형식으로 재생 목록 분석 결과를 출력합니다.
예를 들어, 재생 목록 이름이 "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}");
// 여기에 시작 곡과 마지막 곡을 출력하세요
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
로직 & 흐름의 모든 레슨
1고급 리스트 조작
리스트 속성: first 및 last리스트 상태: isEmpty 및 isNotEmpty리스트 뒤집기리스트에 추가: insert리스트 요소 제거: removeWhere리스트에서 찾기: indexOf리스트 정렬리스트 섞기요약 - 리스트 정리 도구