Collections
Array Updates
Arrays keep ordered values and can be appended to or updated by index.
Change an ordered list
array_updates.swift
Replay: real traced execution (multi-file project)
let firstScore = 8
var scores = [firstScore, 10, 14]
scores.append(16)
scores[1] = scores[1] + 2
let total = scores[0] + scores[1] + scores[2] + scores[3]
print("scores=\(scores)")
print("total=\(total)")
let firstScore = 5
var scores = [firstScore, 10, 14]
scores.append(16)
scores[1] = scores[1] + 2
let total = scores[0] + scores[1] + scores[2] + scores[3]
print("scores=\(scores)")
print("total=\(total)")
let firstScore = 12
var scores = [firstScore, 10, 14]
scores.append(16)
scores[1] = scores[1] + 2
let total = scores[0] + scores[1] + scores[2] + scores[3]
print("scores=\(scores)")
print("total=\(total)")
firstScore ← 8, scores ← [8, 10, 14], scores[1] ← 12, total ← 50
1let firstScore→ 8 = 8 //@firstScore=5, 122var scores→ [8, 10, 14] = [firstScore8, 10, 14]3scores→ [8, 10, 14, 16].append(16)4scores[1]→ 12 = scores[1] + 256let total→ 50 = scores[0]8 + scores[1]12 + scores[2]14 + scores[3]167print("scores=\(scores[8, 12, 14, 16])")8print("total=\(total50)")outputscores=[8, 12, 14, 16] total=50
firstScore ← 5, scores ← [5, 10, 14], scores[1] ← 12, total ← 47
1let firstScore→ 5 = 52var scores→ [5, 10, 14] = [firstScore5, 10, 14]3scores→ [5, 10, 14, 16].append(16)4scores[1]→ 12 = scores[1] + 256let total→ 47 = scores[0]5 + scores[1]12 + scores[2]14 + scores[3]167print("scores=\(scores[5, 12, 14, 16])")8print("total=\(total47)")outputscores=[5, 12, 14, 16] total=47
firstScore ← 12, scores ← [12, 10, 14], scores[1] ← 12, total ← 54
1let firstScore→ 12 = 122var scores→ [12, 10, 14] = [firstScore12, 10, 14]3scores→ [12, 10, 14, 16].append(16)4scores[1]→ 12 = scores[1] + 256let total→ 54 = scores[0]12 + scores[1]12 + scores[2]14 + scores[3]167print("scores=\(scores[12, 12, 14, 16])")8print("total=\(total54)")outputscores=[12, 12, 14, 16] total=54
Append and Update
scoresstarts as[8, 10, 14].append(16)adds a fourth score.scores[1] = scores[1] + 2changes10to12.- The total adds all four final scores.
| Index | Final score |
| --- | --- |
|
0|8| |1|12| |2|14| |3|16|
arrays
Use an array when order matters. `append` adds a new element, and subscript assignment changes an element at a known index.
Exercise: array_updates.swift
Append one score, update one indexed score, and print the final scores and total