Information om denne video
Underviser: Jeppe Borggaard Jørgensen Video: 19:22 Lektion nr. 10 af 21
Vi skal nu afrunde vores kollektioner, og i den forbindelse kigger vi på Sets og Dictionaries. Indtil videre har vi kun arbejdet med Arrays, som da også er den mest brugte, men derfor skal vi ikke undervurdere Sets og Dictionaries.
Sets er en kollektion, hvor vi kun har unikke data. Vi kan derfor ikke have dobbelt-forekomster af samme data.
Dictionaries er en kollektion der benytter key-value pairs, som er en metode hvorpå vi kan udvide vores index-begreb vi kender fra arrays.
Sets og Dictionaries har derfor hver deres tydeligt afgrænsede område, hvorpå det giver mening at bruge dem. Skal du have unikke data? = Set. Skal du have en association på key-value? Dictionary. Alt andet? Arrays.
Øvelse 1
Lav et set, der repræsenterer alle bogstaver i alfabetet.
Udskrive settet.
Prøv at sætte det samme bogstav 2 gange. Hvad forventer du der sker og hvad sker der?
Bonus: Der findes en datatype kaldet Character, der kun kan indeholde ét bogstav (én karakter), der kan anvendes istedet for String.
Øvelse 2
Lav et program, der indeholder et dictionary af dyrenavne som key, og pris som value.
Lav herefter et dictionary af personer, med key = navn og value = budget.
Gennemløb alle personer, og udskriv deres navn, budget og hvilke dyr de har råd til at købe (dyr med pris mindre eller lig med deres budget).
Løsningsforslag til øvelser
Øvelse 1:
var alphabet = Set<Character>(); alphabet.insert("A"); alphabet.insert("C"); alphabet.insert("D"); alphabet.insert("E"); // Og så videre for character in alphabet { print(character); }
Øvelse 2:
var animals = [String: Int](); animals["Hund"] = 100; animals["Kat"] = 50; animals["Slange"] = 500; var persons = [String: Int](); persons["Jens Jensen"] = 100; persons["Bo Bogense"] = 500; for (person, budget) in persons { print("\(person) har råd til:"); for (animal, cost) in animals { if (budget >= cost) { print(animal); } } print("------"); }