Type inference helps the computer guess the type of a value automatically. This makes your code shorter and easier to read.
When you want to write cleaner code without repeating types.
When the type of a value is obvious from the value itself.
When you want the compiler to help catch type mistakes early.
When you want to avoid cluttering your code with extra type information.
Syntax
Swift
let variableName = value
var variableName = value
The compiler looks at the value on the right side and decides the type.
You can use let for constants and var for variables.
Examples
The compiler knows number is an Int and message is a String.
Swift
let number = 10var message = "Hello"
pi is inferred as Double and isActive as Bool.
Swift
let pi = 3.14var isActive = true
The compiler infers names as an array of Strings.
Swift
let names = ["Anna", "Bob", "Cara"]
Sample Program
This program shows how the compiler guesses the types of different values automatically. It then prints them.
Swift
let age = 25var greeting = "Hi there!"let temperature = 22.5var isSunny = falseprint("Age is \(age)")
print(greeting)
print("Temperature: \(temperature)°C")
print("Is it sunny? \(isSunny)")
OutputSuccess
Important Notes
If the compiler cannot guess the type clearly, you must specify it yourself.
Type inference works best when the value is simple and clear.
Summary
Type inference lets the compiler guess variable types automatically.
This makes code shorter and easier to read.
You still can specify types if you want to be clear or need a specific type.
Practice
(1/5)
1. What does type inference mean in Swift?
easy
A. The program runs slower because types are guessed.
B. You must always write the type explicitly.
C. The compiler automatically figures out the variable's type.
D. You cannot use variables without specifying types.
Solution
Step 1: Understand type inference concept
Type inference means the compiler guesses the type of a variable based on the value assigned.
Step 2: Compare options with definition
Only The compiler automatically figures out the variable's type. correctly describes automatic type detection by the compiler.
Final Answer:
The compiler automatically figures out the variable's type. -> Option C
Quick Check:
Type inference = automatic type detection [OK]
Hint: Type inference means compiler guesses type automatically [OK]
Common Mistakes:
Thinking you must always write types explicitly
Believing type inference slows down the program
Confusing type inference with dynamic typing
2. Which of the following Swift variable declarations uses type inference correctly?
easy
A. let number = 10
B. let number: = 10
C. let number Int = 10
D. let number : Int 10
Solution
Step 1: Check syntax for variable declaration with type inference
Type inference allows omitting the type, so let number = 10 is correct.
Step 2: Identify syntax errors in other options
Options B, C, and D have syntax errors: missing type name, wrong order, or missing assignment operator.
Final Answer:
let number = 10 -> Option A
Quick Check:
Correct syntax with inference = let number = 10 [OK]
Hint: Look for correct Swift syntax without explicit type [OK]
Common Mistakes:
Adding colon without type name
Writing type before variable name incorrectly
Omitting assignment operator
3. What is the type of variable value in this Swift code?
let value = 3.14
medium
A. Double
B. Int
C. String
D. Float
Solution
Step 1: Identify the literal type assigned
The number 3.14 is a decimal number, which Swift treats as Double by default.
Step 2: Confirm Swift default for floating-point literals
Swift infers floating-point literals as Double unless specified otherwise.
Final Answer:
Double -> Option A
Quick Check:
3.14 literal = Double type [OK]
Hint: Decimal numbers default to Double in Swift [OK]
Common Mistakes:
Assuming 3.14 is Float by default
Confusing Int with floating-point types
Thinking literals default to String
4. Identify the error in this Swift code snippet:
var name = "Alice"
name = 42
medium
A. No error, type inference allows changing type.
B. Error: Cannot assign Int to a variable inferred as String.
C. Error: Missing semicolon after first line.
D. Error: Variable must be declared with explicit type.
Solution
Step 1: Check initial type inferred for variable
Variable name is assigned a String "Alice", so compiler infers type String.
Step 2: Analyze reassignment with different type
Assigning an Int (42) to a String variable causes a type mismatch error.
Final Answer:
Error: Cannot assign Int to a variable inferred as String. -> Option B
Quick Check:
Type mismatch on reassignment = Error [OK]
Hint: Variable type fixed by first assignment, cannot change later [OK]
Common Mistakes:
Thinking type inference allows changing variable type
Assuming semicolons are required in Swift
Believing explicit type declaration is always needed
5. Given this Swift code, what is the type of result?
let numbers = [1, 2, 3]
let result = numbers.map { $0 * 2 }
hard
A. Array<Any>
B. Int
C. [Double]
D. [Int]
Solution
Step 1: Understand the type of numbers
Array numbers contains Int values, so its type is [Int].
Step 2: Analyze the map operation and type inference
The map multiplies each Int by 2, producing another Int for each element, so the result is an array of Ints.
Step 3: Confirm inferred type of result
Since map returns an array of transformed elements, result is inferred as [Int].
Final Answer:
[Int] -> Option D
Quick Check:
map on [Int] with Int output = [Int] [OK]
Hint: map returns array of same type as transformed elements [OK]
Common Mistakes:
Thinking map returns a single Int
Assuming map changes type to Double automatically
Believing result is Array<Any> without type inference
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.