Menu
Coddy logo textTech

Tekrar - Generic Depolama

Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 69 / 110.

challenge icon

Görev

Kolay

Collections ve generics hakkında öğrendiğin her şeyi bir araya getiren genel bir depolama sistemi oluşturalım! Her türden öğeyi depolayabilen, bu öğeleri alabilen ve bir Storage<T> döngüsü kullanılarak üzerinde yineleme yapılabilen bir for-in sınıfı oluşturacaksın.

Kodunu iki dosyada düzenleyeceksin:

  • storage.dart: İki sınıftan oluşan genel depolama sistemini oluştur:
    • Depolanan öğeler üzerinde yinelemeyi etkinleştirmek için StorageIterator<T> uygulayan bir Iterator<T> sınıfı
    • Aşağıdaki özelliklere sahip, Storage<T> sınıfını genişleten bir Iterable<T> sınıfı:
      • Öğeleri dahili olarak tutacak özel bir liste
      • Yeni bir öğeyi depolamak için bir add(T item) yöntemi
      • Verilen dizindeki öğeyi döndüren bir getAt(int index) yöntemi
      • Depolanan öğelerin sayısını döndüren bir count alıcısı
      • Depolanan öğeler için bir iterator döndüren bir StorageIterator alıcısı
  • main.dart: Depolama dosyanı içe aktar ve farklı türlerle genel depolamayı göster:
    • Bir Storage<String> oluştur ve üç şehir adı ekle: 'Paris', 'Tokyo', 'Sydney'
    • Öğe sayısını yazdır
    • 1. dizindeki öğeyi yazdır
    • Her şehri kendi satırında yazdırmak için bir for-in döngüsü kullan
    • Boş bir satır yazdır
    • Bir Storage<int> oluştur ve dört sayı ekle: 100, 200, 300, 400
    • 150'den büyük değerleri filtrelemek için where yöntemini kullan, ardından ortaya çıkan listeyi yazdır

Depolama sistemin, tam tür güvenliğini korurken her türle sorunsuz şekilde çalışmalıdır. Iterable sınıfını genişlettiği için where, map ve fold gibi güçlü yöntemlere otomatik olarak erişim kazanır!

Beklenen çıktı:

Count: 3
Item at 1: Tokyo
Paris
Tokyo
Sydney

[200, 300, 400]

Kendin dene

import 'storage.dart';

void main() {
  // TODO: Şehirler için bir Storage<String> oluşturun
  // Üç şehir ekleyin: 'Paris', 'Tokyo', 'Sydney'

  // TODO: Öğe sayısını yazdırın (format: "Count: X")

  // TODO: 1. indeksteki öğeyi yazdırın (format: "Item at 1: X")

  // TODO: Her şehri kendi satırında yazdırmak için bir for-in döngüsü kullanın

  // TODO: Boş bir satır yazdırın
  print('');

  // TODO: Sayılar için bir Storage<int> oluşturun
  // Dört sayı ekleyin: 100, 200, 300, 400

  // TODO: 150'den büyük değerleri filtrelemek için where metodunu kullanın
  // Ardından toList() kullanarak sonuç listesini yazdırın
}

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Dart derleyicisi