Menu
Coddy logo textTech

Tworzenie zbioru

Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 18 z 65.

Skoro już wiesz, czym jest Set, nauczmy się, jak go utworzyć. W Dart tworzysz Set za pomocą nawiasów klamrowych {}, oddzielając elementy przecinkami, podobnie jak zapisuje się zbiór matematyczny.

Set<String> colors = {'red', 'blue', 'green'};
print(colors);  // {red, blue, green}

Ważne, aby nie mylić tej składni z tworzeniem obiektu Map. Chociaż oba używają nawiasów klamrowych, obiekt Set zawiera tylko wartości, podczas gdy obiekt Map zawiera pary klucz-wartość oddzielone dwukropkami. Pusty obiekt Set musi być jawnie zadeklarowany z określonym typem, aby odróżnić go od pustego obiektu Map.

Set<String> emptySet = <String>{};  // Pusty zbiór
Map<String, int> emptyMap = {};     // Pusta mapa

Możesz także utworzyć Set z powtarzającymi się wartościami, ale pamiętaj, że duplikaty zostaną automatycznie usunięte, a w końcowej kolekcji pozostaną tylko unikalne elementy.

challenge icon

Wyzwanie

Łatwy

Utwórz program, który zarządza systemem tagowania bloga, tworząc zbiór unikalnych tagów dla wpisu na blogu. Twój program powinien:

  1. Odczytać ciąg znaków reprezentujący tytuł wpisu na blogu
  2. Odczytać wiele ciągów znaków reprezentujących tagi, które mają zostać dodane do wpisu (wprowadzanie zakończy się po otrzymaniu "done")
  3. Utworzyć zbiór ciągów znaków do przechowywania unikalnych tagów
  4. Dodać każdy tag do zbioru (duplikaty zostaną automatycznie usunięte)
  5. Wyświetlić wyniki tagowania bloga w dokładnie takim formacie, jak pokazano poniżej

Na przykład, jeśli tytuł bloga to "Introduction to Dart Programming", a tagi to "programming", "dart", "tutorial", "programming", "beginner", Twój program powinien wyświetlić:

Blog Post: Introduction to Dart Programming
Tags added: [programming, dart, tutorial, programming, beginner]
Unique tags: {programming, dart, tutorial, beginner}
Total unique tags: 4
Status: Blog post tagged successfully

Jeśli tytuł bloga to "Web Development Tips", a tagi to "web", "html", "css", "web", "html", "javascript", Twój program powinien wyświetlić:

Blog Post: Web Development Tips
Tags added: [web, html, css, web, html, javascript]
Unique tags: {web, html, css, javascript}
Total unique tags: 4
Status: Blog post tagged successfully

Jeśli tytuł bloga to "Getting Started", a tagi to "guide", "basics", Twój program powinien wyświetlić:

Blog Post: Getting Started
Tags added: [guide, basics]
Unique tags: {guide, basics}
Total unique tags: 2
Status: Blog post tagged successfully

Twój program musi utworzyć zbiór przy użyciu składni z nawiasami klamrowymi {} i pokazać, jak zbiory automatycznie usuwają duplikaty. Najpierw przechowaj wszystkie wprowadzone tagi na liście, aby pokazać, co zostało wpisane, a następnie utwórz zbiór, aby pokazać unikalne tagi. Zbiór powinien wyświetlać swoją zawartość w standardowym formacie zbioru, z nawiasami klamrowymi.

Spróbuj swoich sił

import 'dart:io';

void main() {
  // Odczytaj tytuł wpisu na blogu
  String? title = stdin.readLineSync();
  
  // Odczytuj tagi, aż zostanie wpisane "done"
  List<String> allTags = [];
  String? tag;
  while ((tag = stdin.readLineSync()) != "done") {
    if (tag != null) {
      allTags.add(tag);
    }
  }
  
  // TODO: Napisz tutaj swój kod
  // Utwórz Set z listy tagów, aby uzyskać unikalne tagi
  // Oblicz łączną liczbę unikalnych tagów
  
  // Wyświetl wyniki
  print("Blog Post: $title");
  print("Tags added: $allTags");
  // Wyświetl unikalne tagi w formacie Set
  // Wyświetl liczbę unikalnych tagów
  // Wyświetl komunikat o stanie
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Dart online