TL ; DR:
A field is a variable that lives inside a class. Each object of that class has its own copy.
Declare a field with a name and a type using
varso other code can read and write it:class Dog { var name: String = "" var age: Int = 0 }
Access a field on an object with the dot operator:
dog.name = "Rex"
Full lesson:
Right now your Dog class is just an empty shell — every Dog object you create is identical to every other one. We need a way to attach data to each object.
That's what fields are for. A field is a variable that belongs to a class — and each object created from that class gets its own copy of every field.
Declaring fields
class Dog {
var name: String = ""
var age: Int = 0
}
vardeclares a mutable field — any code can read and write it. You'll useletlater for fields that should not change after being set.name: Stringis just a variable declaration — same syntax you'd use anywhere else.
Reading and writing fields
var dog = Dog()
dog.name = "Rex" // write
dog.age = 4
print(dog.name) // read → prints "Rex"
Each object has its own slot for every field, so two dogs can have different names without interfering.
Default values
In Swift, stored properties must always have an initial value. Common defaults are:
Numbers default to
0Booldefaults tofalseOptional references (
String?, arrays, other classes) default tonil
Your task
Update the Dog class to have two fields: name (a String) and age (an Int). Then in mainFunction, set them on the dog object so the pre-filled print prints:
Rex is 4 years oldFree plan: 30 tutor messages. Premium is unlimited.