Advertisement
Guest User

Untitled

a guest
Aug 20th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. )
  6.  
  7. type User struct {
  8. Name string
  9. Password string
  10. }
  11.  
  12. type Account struct {
  13. User
  14. IsActive bool
  15. }
  16.  
  17. type Maskable interface {
  18. Mask() interface{}
  19. }
  20.  
  21. func (u User) Mask() interface{} {
  22. u.Password = "***masked***"
  23. return u
  24. }
  25.  
  26. func main() {
  27. user := User{Name: "foo", Password: ":this is secret password:"}
  28. account := Account{User: user, IsActive: true}
  29.  
  30. {
  31. var target Maskable = user
  32. fmt.Println("----------------------------------------")
  33. fmt.Printf("\tbefore: %#v\n", target)
  34. fmt.Printf("\tmapped: %#v\n", target.Mask())
  35. fmt.Printf("\tafter : %#v\n", target)
  36. }
  37. {
  38. var target Maskable = account
  39. fmt.Println("----------------------------------------")
  40. fmt.Printf("\tbefore: %#v\n", target)
  41. fmt.Printf("\tmapped: %#v\n", target.Mask())
  42. fmt.Printf("\tafter : %#v\n", target)
  43. }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement