Skip to main content
Journey Uncommon Logo
JourneyUncommon
mediumSwiftprotocol-oriented programmingSingle-choice MCQ

A common POP pitfall: a protocol requirement and a same-named protocol-extension default can disagree. Given the code below, what prints?

protocol Doc { func describe() -> String } extension Doc { func describe() -> String { "default" } func extra() -> String { "B" } } struct Memo: Doc { func describe() -> String { "A" } func extra() -> String { "X" } } let d: Doc = Memo() print(d.describe()) print(d.extra())