Bird
Raised Fist0
iOS Swiftmobile~5 mins

Variables (let, var) and type inference in iOS Swift

Choose your learning style10 modes available
Introduction

Variables store information you want to use later. Using let and var helps you keep your data safe and clear.

When you want to keep a value that never changes, like your app's name.
When you need to store user input that can change, like a score or a name.
When you want Swift to guess the type of your data to write less code.
When you want to avoid mistakes by making some values constant.
When you want to update a value many times during your app's use.
Syntax
iOS Swift
let constantName: Type = value
var variableName: Type = value

// Or with type inference:
let constantName = value
var variableName = value

let creates a constant that cannot change after it is set.

var creates a variable that can change its value later.

Examples
This creates a constant pi with type Double that cannot change.
iOS Swift
let pi: Double = 3.14159
This creates a variable score with type Int that can change.
iOS Swift
var score: Int = 0
Swift guesses name is a String because of the value.
iOS Swift
let name = "Alice"
Swift guesses isLoggedIn is a Bool because of the value.
iOS Swift
var isLoggedIn = false
Sample App

This SwiftUI app shows a score that starts at 0 and can increase by pressing a button. The max score is a constant that never changes.

iOS Swift
import SwiftUI

struct ContentView: View {
    @State private var score = 0
    let maxScore = 10

    var body: some View {
        VStack(spacing: 20) {
            Text("Score: \(score)")
                .font(.largeTitle)
            Button("Increase Score") {
                if score < maxScore {
                    score += 1
                }
            }
            Text("Max score is fixed at \(maxScore)")
                .foregroundColor(.gray)
        }
        .padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
OutputSuccess
Important Notes

Use let whenever you know the value won't change to avoid bugs.

Swift's type inference helps you write less code but you can always specify types if you want.

Changing a let constant after setting it will cause an error.

Summary

let creates constants that cannot change.

var creates variables that can change.

Swift can guess the type of a variable or constant from its value.

Practice

(1/5)
1. What does the keyword let do in Swift?
easy
A. Creates a constant that cannot be changed
B. Creates a variable that can be changed
C. Declares a function
D. Defines a class

Solution

  1. Step 1: Understand let usage

    The keyword let is used to declare constants in Swift, which means their value cannot be changed after assignment.
  2. Step 2: Compare with var

    Unlike var, which declares variables that can change, let makes the value fixed.
  3. Final Answer:

    Creates a constant that cannot be changed -> Option A
  4. Quick Check:

    let = constant [OK]
Hint: Remember: let = fixed value, var = changeable value [OK]
Common Mistakes:
  • Confusing let with var
  • Thinking let allows value changes
  • Mixing let with function declaration
2. Which of the following is the correct way to declare a variable named score with initial value 10 in Swift?
easy
A. let score = 10
B. var score = 10
C. score var = 10
D. variable score = 10

Solution

  1. Step 1: Identify variable declaration syntax

    In Swift, var is used to declare variables that can change, and the syntax is var name = value.
  2. Step 2: Check each option

    var score = 10 uses correct syntax. let score = 10 declares a constant, not a variable. score var = 10 and variable score = 10 are invalid syntax.
  3. Final Answer:

    var score = 10 -> Option B
  4. Quick Check:

    Variable declaration = var name = value [OK]
Hint: Use var for variables, let for constants [OK]
Common Mistakes:
  • Using let instead of var for variables
  • Incorrect keyword order
  • Using non-existent keywords like variable
3. What will be the output of this Swift code?
var name = "Alice"
name = "Bob"
print(name)
medium
A. Error: Cannot assign to let constant
B. Alice
C. Bob
D. nil

Solution

  1. Step 1: Understand variable reassignment

    The variable name is declared with var, so it can be changed after initial assignment.
  2. Step 2: Trace the code execution

    Initially, name is "Alice". Then it is reassigned to "Bob". The print statement outputs the current value, "Bob".
  3. Final Answer:

    Bob -> Option C
  4. Quick Check:

    var allows change, so output is reassigned value [OK]
Hint: var means value can change, so print latest value [OK]
Common Mistakes:
  • Thinking let was used and reassignment causes error
  • Expecting original value to print
  • Confusing variable with constant
4. What is wrong with this Swift code?
let age = 25
age = 30
medium
A. Cannot assign to value: 'age' is a constant
B. Missing semicolon after 25
C. Variable 'age' not declared
D. Syntax error: let cannot be used

Solution

  1. Step 1: Identify declaration type

    age is declared with let, making it a constant.
  2. Step 2: Understand reassignment error

    Trying to assign a new value to a constant causes a compile-time error: "Cannot assign to value: 'age' is a constant".
  3. Final Answer:

    Cannot assign to value: 'age' is a constant -> Option A
  4. Quick Check:

    let constants cannot be changed [OK]
Hint: let means constant; reassignment causes error [OK]
Common Mistakes:
  • Thinking semicolon is required
  • Confusing let with var
  • Ignoring reassignment rules
5. Consider this Swift code:
var x = 5
let y = x
x = 10
print(y)

What will be printed and why?
hard
A. 10, because y tracks x's value
B. nil, because y is not initialized
C. Error, cannot assign var to let
D. 5, because y is a constant copy of x's initial value

Solution

  1. Step 1: Understand value assignment

    Variable x is 5 initially. y is a constant assigned the current value of x, which is 5.
  2. Step 2: Reassign x and check y

    Changing x to 10 does not affect y, because y holds its own copy of the value 5.
  3. Final Answer:

    5, because y is a constant copy of x's initial value -> Option D
  4. Quick Check:

    let copies value; later changes to var don't affect it [OK]
Hint: let copies value at assignment; later var changes don't affect it [OK]
Common Mistakes:
  • Thinking y updates when x changes
  • Expecting runtime error on assignment
  • Confusing reference and value types
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard