Extensions
Extension Methods
Extensions add methods to an existing type without changing the original declaration.
Add behavior to a string
extension_methods.swift
Replay: real traced execution (multi-file project)
extension String {
func shout() -> String {
return uppercased() + "!"
}
}
let word = "trace"
let message = word.shout()
print(message)
extension String {
func shout() -> String {
return uppercased() + "!"
}
}
let word = "swift"
let message = word.shout()
print(message)
extension String {
func shout() -> String {
return uppercased() + "!"
}
}
let word = "replay"
let message = word.shout()
print(message)
word ← trace
7let word→ trace = "trace" //@word="swift", "replay"8let message = wordtrace.shout()message ← TRACE!
7let word = "trace" //@word="swift", "replay"8let message→ TRACE! = wordtrace.shout()910print(messageTRACE!)outputTRACE!
word ← swift
7let word→ swift = "swift"8let message = wordswift.shout()message ← SWIFT!
7let word = "swift"8let message→ SWIFT! = wordswift.shout()910print(messageSWIFT!)outputSWIFT!
word ← replay
7let word→ replay = "replay"8let message = wordreplay.shout()message ← REPLAY!
7let word = "replay"8let message→ REPLAY! = wordreplay.shout()910print(messageREPLAY!)outputREPLAY!
extension method
An extension method is called like a normal method on values of the extended type.