Menu
Coddy logo textTech

Özet - 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

Koleksiyonlar ve generic yapılar hakkında öğrendiğiniz her şeyi birleştiren generic bir depolama sistemi inşa edelim! Herhangi bir türdeki öğeleri depolayabilen, onları geri getirebilen ve bir for-in döngüsü kullanılarak üzerinde gezinebilen bir Storage<T> sınıfı oluşturacaksınız.

Kodunuzu iki dosya halinde düzenleyeceksiniz:

  • storage.dart: İki sınıftan oluşan generic depolama sisteminizi oluşturun:
    • Depolanan öğeler üzerinde yineleme yapılabilmesini sağlamak için Iterator<T> arayüzünü uygulayan bir StorageIterator<T> sınıfı
    • Aşağıdaki yeteneklere sahip, Iterable<T> sınıfını genişleten bir Storage<T> sınıfı:
      • Öğeleri dahili olarak tutmak için özel (private) bir liste
      • Yeni bir öğe depolamak için bir add(T item) metodu
      • Verilen indeksteki öğeyi döndüren bir getAt(int index) metodu
      • Depolanan öğelerin sayısını döndüren bir count getter'ı
      • Depolanan öğeler için bir StorageIterator döndüren bir iterator getter'ı
  • main.dart: Depolama dosyanızı içe aktarın ve generic depolamayı farklı türlerle gösterin:
    • Bir Storage<String> oluşturun ve üç şehir adı ekleyin: 'Paris', 'Tokyo', 'Sydney'
    • Öğelerin sayısını yazdırın
    • 1. indeksteki öğeyi yazdırın
    • Her şehri kendi satırında yazdırmak için bir for-in döngüsü kullanın
    • Boş bir satır yazdırın
    • Bir Storage<int> oluşturun ve dört sayı ekleyin: 100, 200, 300, 400
    • 150'den büyük değerleri filtrelemek için where metodunu kullanın, ardından sonuç listesini yazdırın

Depolama sisteminiz, tam tür güvenliğini korurken herhangi bir türle sorunsuz çalışmalıdır. Iterable sınıfını genişlettiği için where, map ve fold gibi güçlü metotlara 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