Extensions
Numeric Extensions
Extensions can add focused helper methods to standard-library numeric types.
Add a number helper
numeric_extensions.swift
Replay: real traced execution (multi-file project)
extension Int {
func squared() -> Int {
return self * self
}
}
let base = 6
let result = base.squared()
let message = "square=\(result)"
print(message)
extension Int {
func squared() -> Int {
return self * self
}
}
let base = 3
let result = base.squared()
let message = "square=\(result)"
print(message)
extension Int {
func squared() -> Int {
return self * self
}
}
let base = 9
let result = base.squared()
let message = "square=\(result)"
print(message)
base ← 6
7let base→ 6 = 6 //@base=3, 98let result = base6.squared()9let message = "square=\(result)"result ← 36, message ← square=36
7let base = 6 //@base=3, 98let result→ 36 = base6.squared()9let message→ square=36 = "square=\(result36)"1011print(messagesquare=36)outputsquare=36
base ← 3
7let base→ 3 = 38let result = base3.squared()9let message = "square=\(result)"result ← 9, message ← square=9
7let base = 38let result→ 9 = base3.squared()9let message→ square=9 = "square=\(result9)"1011print(messagesquare=9)outputsquare=9
base ← 9
7let base→ 9 = 98let result = base9.squared()9let message = "square=\(result)"result ← 81, message ← square=81
7let base = 98let result→ 81 = base9.squared()9let message→ square=81 = "square=\(result81)"1011print(messagesquare=81)outputsquare=81
standard type extension
Extending a standard type keeps small domain helpers close to the type they operate on.