Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////
- // File 1
- public class Lockable {
- public struct Key {
- private init() {}
- }
- public struct Secrets {
- var message = "Treasure!"
- }
- private let secrets : Secrets = Secrets()
- public func getSecrets(key: Key)->Secrets {
- return secrets
- }
- public init(_ proof: (Key)->()) {
- proof(Key())
- }
- }
- /////////////////////////////
- // File 2
- class Derived : Lockable {
- var key : Key? = nil
- init() {
- var key : Lockable.Key?
- super.init({ k in key = k })
- self.key = key!
- }
- func callSecrets() {
- print(getSecrets(key!).message)
- }
- }
- var derived = Derived()
- derived.callSecrets()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement