Menu
Coddy logo textTech

リストのプロパティ: first と last

CoddyのDartジャーニー「論理とフロー」セクションの一部 — レッスン 1/65。

リストを扱う際、最初または最後の要素にアクセスする必要がよくあります。[0][list.length - 1] のようなインデックス番号を使用する代わりに、Dartはこれをはるかに簡単にする2つの便利なプロパティを提供しています。

.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腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン