Protocols
Default Implementation
Protocol extensions can provide behavior that conforming types inherit.
Share default behavior
default_implementation.swift
protocol Greeter {
var name: String { get }
}
extension Greeter {
func greeting() -> String {
return "Hello, \(name)"
}
}
struct Member: Greeter {
let name: String
}
let memberName =
let member = Member(name: memberName)
let message = member.greeting()
print(message)
protocol Greeter {
var name: String { get }
}
extension Greeter {
func greeting() -> String {
return "Hello, \(name)"
}
}
struct Member: Greeter {
let name: String
}
let memberName =
let member = Member(name: memberName)
let message = member.greeting()
print(message)
protocol Greeter {
var name: String { get }
}
extension Greeter {
func greeting() -> String {
return "Hello, \(name)"
}
}
struct Member: Greeter {
let name: String
}
let memberName =
let member = Member(name: memberName)
let message = member.greeting()
print(message)
protocol extension
A protocol extension can define a method once so each conforming type can reuse it unless it needs custom behavior.