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, every stored property must have a value by the time an object is created, and numbers, Bool and String properties do not get one automatically. Give each a default value in the declaration, or set it in an initializer (a later lesson). Typical defaults are:
Numbers:
0Bool:falseString:""An optional property such as
var nickname: String?starts asnilwithout an explicit default
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. PRO is unlimited.
