Advertisement
AlexNovoross87

map&pointers

May 9th, 2025 (edited)
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 2.70 KB | None | 0 0
  1. MAP
  2. ======================================
  3. Создание карты (Мар) в языке Go
  4. myMap := make(map[string]int)
  5.  
  6. mуМар := mар[string]int{
  7. "item 1": 1,
  8. "item 2": 2,
  9. "item 3": 3,
  10. }
  11.  
  12.  
  13. Операции над картами (Мар)
  14. -------------------------------
  15. myMap := make(map[string]int)
  16.  
  17. *Insert -> mуМар["favorite number"] = 5
  18. *Read   -> fav := myMap["favorite number"]
  19.           missing := myMap["age"]
  20.  
  21. *Delete -> delete(myMap, "favorite number")
  22.  
  23. *Check Existence ->
  24. price, found := myMap["price"]
  25. if !found {
  26. fmt.Println("price not found”)
  27. return
  28. }
  29.  
  30.  
  31. Итерация по картам
  32. ------------------------
  33. myMap := make(map[string]int)
  34. for key, value := range myMap { // ..}
  35.  
  36.  
  37. POINTERS
  38. ======================================
  39. Память
  40. -------
  41. Вызовы функций в Go осуществляются по значению.
  42. Создается копия каждого аргумента функции, независимо от их размера.
  43. Может быть потенциально медленным для больших структур данных.
  44. Более сложно управлять состоянием программы.
  45. Это можно изменить, используя указатели.
  46.  
  47. Указатели
  48. ----------
  49. Указатели - это переменные, которые указывают на определенную область памяти.
  50. Значение самой переменной представляет собой адрес памяти.
  51. -> Для доступа к данным необходимо выполнить разыменование указателя.
  52. -> Это позволяет изменять значения, которые существуют в других частях программы.
  53.  
  54. Создание указателей
  55. --------------------
  56. Оператор разыменования или астериск (*) вместе с типом указывает,
  57. что значение является указателем
  58. Амперсанд (&) создает указатель на переменную
  59. value := 10             value := 10
  60. var valuePtr *int       valuePtr := &value
  61. valuePtr = &value
  62.  
  63. Использование указателей
  64. -------------------------
  65. Астериск (*) при использовании с указателем будет
  66. разыменовывать указатель
  67. I Это предоставляет доступ к фактическим данным, на которые
  68. указывает указатель
  69.  
  70. func increment(x *int) {
  71. *х += 1
  72. }
  73. i := 1
  74. increment(&i) // == 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement