📖 Scenario: You are organizing a small party and want to keep track of the guests' names using an array.
🎯 Goal: Create an array of guest names using Swift's type inference and then print the list.
📋 What You'll Learn
Create an array called guestNames with exactly these names: "Anna", "Brian", "Catherine"
Create a variable called newGuest and assign it the value "David"
Add newGuest to the guestNames array
Print the guestNames array
💡 Why This Matters
🌍 Real World
Arrays are used to store lists of items like guest names, product lists, or scores in many apps.
💼 Career
Understanding arrays and type inference is essential for Swift developers building iOS apps that manage collections of data.
Progress0 / 4 steps
1
Create the initial array
Create an array called guestNames with these exact names: "Anna", "Brian", "Catherine". Use Swift's type inference by not specifying the type explicitly.
Swift
Hint
Use square brackets to create an array and assign it to guestNames.
2
Add a new guest variable
Create a variable called newGuest and assign it the value "David".
Swift
Hint
Use var newGuest = "David" to create the variable.
3
Add the new guest to the array
Add the newGuest variable to the guestNames array using the append method.
Swift
Hint
Use guestNames.append(newGuest) to add the new guest.
4
Print the guest list
Print the guestNames array to show all guest names.
Swift
Hint
Use print(guestNames) to display the array.
Practice
(1/5)
1. What does Swift do when you create an array with values like [1, 2, 3] without specifying a type?
easy
A. Swift infers the array type as [Int] automatically.
B. Swift treats the array as [Any] type.
C. Swift throws a syntax error because type is missing.
D. Swift creates an empty array instead.
Solution
Step 1: Understand type inference with array literals
When you write an array with values like [1, 2, 3], Swift looks at the values and guesses the type. Here, all values are integers.
Step 2: Determine the inferred type
Since all values are integers, Swift infers the array type as [Int]. No explicit type declaration is needed.
Final Answer:
Swift infers the array type as [Int] automatically. -> Option A
Quick Check:
Array with integers = [Int] [OK]
Hint: Look at items; Swift guesses array type from them [OK]
Common Mistakes:
Thinking Swift defaults to [Any]
Assuming a syntax error without explicit type
Believing empty array is created instead
2. Which of the following is the correct way to create an empty array of Strings in Swift?
easy
A. let names = []
B. let names = String[]
C. let names: [String] = []
D. let names = Array()
Solution
Step 1: Recognize empty array syntax with type annotation
Empty arrays need a type so Swift knows what kind of items will be stored. let names: [String] = [] declares names as [String] and assigns an empty array.
Step 2: Check other options for correctness
let names = [] lacks type info, so it's invalid. let names = String[] uses invalid syntax. let names = Array() creates an empty array but type is not specified, so it defaults to [Any].
Final Answer:
let names: [String] = [] -> Option C
Quick Check:
Empty array needs type annotation [OK]
Hint: Empty arrays must declare type explicitly [OK]
Common Mistakes:
Omitting type for empty arrays
Using Array() without type annotation
Assuming [] alone is enough
3. What is the type of the array created by let numbers = [1, 2.5, 3] in Swift?
medium
A. [Int]
B. [Double]
C. [Float]
D. Error: mixed types not allowed
Solution
Step 1: Analyze the array elements' types
The array contains 1 (Int), 2.5 (Double), and 3 (Int). Swift will promote Int values to Double to keep the array type consistent.
Step 2: Determine the inferred array type
Because of the Double value 2.5, Swift infers the array type as [Double], converting Ints to Double.
Final Answer:
[Double] -> Option B
Quick Check:
Mixed Int and Double = [Double] [OK]
Hint: Mixed Int and Double become [Double] array [OK]
Common Mistakes:
Assuming array is [Int]
Expecting a syntax error for mixed types
Thinking array becomes [Float]
4. Identify the error in this Swift code:
let items = []
items.append("apple")
medium
A. Cannot append to a constant array declared with let.
B. Array type cannot be inferred from empty array literal.
C. Appending a String to an array of Ints causes error.
D. No error; code runs fine.
Solution
Step 1: Check array declaration and type inference
The array is declared as let items = [] with no type or initial values. Swift cannot guess the type from an empty array literal.
Step 2: Understand why append fails
Because items is declared with let, it is immutable and cannot be appended to. To append, it must be declared with var.
Final Answer:
Cannot append to a constant array declared with let. -> Option A
Quick Check:
let arrays are immutable [OK]
Hint: let arrays cannot be modified after declaration [OK]
Common Mistakes:
Thinking append fails because array type is unknown
Assuming default array type is [Int]
Believing code runs without error
5. You want to create an array that holds either integers or strings in Swift. Which approach correctly creates such an array?
hard
A. let mixed = Array()
B. let mixed = [1, "two", 3]
C. let mixed: [Int | String] = [1, "two", 3]
D. let mixed: [Any] = [1, "two", 3]
Solution
Step 1: Understand Swift's type system for mixed arrays
Swift does not support union types like Int | String. To hold different types, use the type Any.
Step 2: Check each option for correctness
let mixed: [Any] = [1, "two", 3] declares mixed as [Any] and initializes with Int and String values, which is valid. let mixed = [1, "two", 3] tries to infer type but fails due to mixed types. Options A and C use invalid syntax for union types.
Final Answer:
let mixed: [Any] = [1, "two", 3] -> Option D
Quick Check:
Mixed types array uses [Any] [OK]
Hint: Use [Any] for arrays with mixed types [OK]
Common Mistakes:
Trying to infer mixed types without [Any]
Using invalid union type syntax
Assuming Swift allows Int | String type
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.