Advertisement
vijayviji

Untitled

Dec 6th, 2023
1,489
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.74 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "math/rand"
  6.     "strconv"
  7.     "time"
  8. )
  9.  
  10. type Client struct {
  11.     id string
  12. }
  13.  
  14. type Params struct {
  15.     client *Client
  16. }
  17.  
  18. var globalClient *Client
  19.  
  20. func main() {
  21.     params := Params{client: globalClient}
  22.     globalClient = get(params)
  23.     fmt.Println(globalClient)
  24.  
  25.     params = Params{client: globalClient}
  26.     globalClient = get(params)
  27.     fmt.Println(globalClient)
  28.  
  29.     params = Params{client: globalClient}
  30.     globalClient = get(params)
  31.     fmt.Println(globalClient)
  32. }
  33.  
  34. func get(params Params) *Client {
  35.     if params.client == nil {
  36.         return &Client{id: getRandomStrId()}
  37.     }
  38.  
  39.     return params.client
  40. }
  41.  
  42. func getRandomStrId() string {
  43.     rand.Seed(time.Now().UnixNano())
  44.     return strconv.FormatInt(int64(rand.Intn(100)), 10)
  45. }
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement