- Mastering macOS Programming
- Stuart Grimshaw
- 109字
- 2021-07-02 22:54:36
Extending existing types with a protocol
We can declare a type that we haven't declared ourselves, including Swift's own types, to conform to our custom protocol by using an extension:
extension Int: Talkative
{
func sayHi()
{
print("Hey, I'm \(self)")
if self%2 != 0
{
print("Isn't that odd?")
}
}
}
We can now call the sayHi method on any int:
1.sayHi()
Note that by using self, we can access the instance's value.
This is something you couldn't do with subclassing--we now have the ability to customize any and all Swift types in any way that we need to, including primitives such as Int and Double.