All the properties and methods we’ve created so far have belonged to individual instances of structs, which means that if we had a Student
struct we could create several student instances each with their own properties and methods:
struct Student {
var name: String
init(name: String) {
self.name = name
}
}
let ed = Student(name: "Ed")
let taylor = Student(name: "Taylor")
You can also ask Swift to share specific properties and methods across all instances of the struct by declaring them as static.
To try this out, we’re going to add a static property to the Student
struct to store how many students are in the class. Each time we create a new student, we’ll add one to it:
struct Student {
static var classSize = 0
var name: String
init(name: String) {
self.name = name
Student.classSize += 1
}
}
Because the classSize
property belongs to the struct itself rather than instances of the struct, we need to read it using Student.classSize
:
print(Student.classSize)
SPONSORED Would you describe yourself as knowledgeable, but struggling when you have to come up with your own code? Fernando Olivares has a new book containing iOS rules you can immediately apply to your coding habits to see dramatic improvements, while also teaching applied programming fundamentals seen in refactored code from published apps.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.