Menu
Coddy logo textTech

Creare un insieme

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 18 di 65.

Ora che hai capito cos'è un Set, impariamo a crearne uno. In Dart, crei un Set usando le parentesi graffe {} con gli elementi separati da virgole, come potresti scrivere un insieme matematico.

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

È importante non confondere questa sintassi con la creazione di una Map. Sebbene entrambe usino le parentesi graffe, un Set contiene solo valori, mentre una Map contiene coppie chiave-valore separate da due punti. Un Set vuoto deve essere dichiarato esplicitamente con un tipo per distinguerlo da una Map vuota.

Set<String> emptySet = <String>{};  // Set vuoto
Map<String, int> emptyMap = {};     // Map vuota

Puoi anche creare un Set con valori duplicati, ma ricorda che i duplicati verranno rimossi automaticamente, lasciando solo elementi univoci nella raccolta finale.

challenge icon

Sfida

Facile

Crea un programma che gestisca un sistema di tag per un blog creando un Set di tag unici per un post del blog. Il programma deve:

  1. Leggere una stringa in input che rappresenta il titolo del post del blog
  2. Leggere più stringhe in input che rappresentano i tag da aggiungere al post (l'input terminerà quando riceverai "done")
  3. Creare un Set di stringhe per memorizzare i tag unici
  4. Aggiungere ogni tag al Set (i duplicati verranno rimossi automaticamente)
  5. Stampare i risultati della gestione dei tag del blog nel formato esatto mostrato di seguito

Ad esempio, se il titolo del blog è "Introduction to Dart Programming" e i tag sono "programming", "dart", "tutorial", "programming", "beginner", il programma dovrebbe produrre:

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

Se il titolo del blog è "Web Development Tips" e i tag sono "web", "html", "css", "web", "html", "javascript", il programma dovrebbe produrre:

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

Se il titolo del blog è "Getting Started" e i tag sono "guide", "basics", il programma dovrebbe produrre:

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

Il programma deve creare un Set usando la sintassi delle parentesi graffe {} e mostrare come i Set gestiscono automaticamente la rimozione dei duplicati. Memorizza prima tutti i tag inseriti in una lista per mostrare ciò che è stato inserito inizialmente, poi crea il Set per mostrare i tag unici. Il Set dovrebbe visualizzare i suoi elementi nel formato standard dei Set, con parentesi graffe.

Provalo tu

import 'dart:io';

void main() {
  // Leggi il titolo del post del blog
  String? title = stdin.readLineSync();
  
  // Leggi i tag finché non viene inserito "done"
  List<String> allTags = [];
  String? tag;
  while ((tag = stdin.readLineSync()) != "done") {
    if (tag != null) {
      allTags.add(tag);
    }
  }
  
  // TODO: Scrivi qui il tuo codice
  // Crea un Set dalla lista dei tag per ottenere i tag univoci
  // Calcola il numero totale di tag univoci
  
  // Mostra i risultati
  print("Blog Post: $title");
  print("Tags added: $allTags");
  // Stampa i tag univoci nel formato Set
  // Stampa il numero totale di tag univoci
  // Stampa il messaggio di stato
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Dart online