Advertisement
Guest User

Untitled

a guest
May 29th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. ////////////////////////
  2. // File 1
  3. public class Lockable {
  4.  
  5. public struct Key {
  6. private init() {}
  7. }
  8.  
  9. public struct Secrets {
  10. var message = "Treasure!"
  11. }
  12.  
  13. private let secrets : Secrets = Secrets()
  14.  
  15. public func getSecrets(key: Key)->Secrets {
  16. return secrets
  17. }
  18.  
  19. public init(_ proof: (Key)->()) {
  20. proof(Key())
  21. }
  22. }
  23.  
  24. /////////////////////////////
  25. // File 2
  26.  
  27. class Derived : Lockable {
  28. var key : Key? = nil
  29. init() {
  30. var key : Lockable.Key?
  31. super.init({ k in key = k })
  32. self.key = key!
  33. }
  34.  
  35. func callSecrets() {
  36. print(getSecrets(key!).message)
  37. }
  38. }
  39.  
  40. var derived = Derived()
  41. derived.callSecrets()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement