slice.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package main
  2. import "fmt"
  3. func main() {
  4. /*
  5. var a []int
  6. var b []int = []int{2, 4, 6}
  7. c := []int{2, 4, 5}
  8. d := []int{2: 10}
  9. fmt.Println(a)
  10. fmt.Println(b)
  11. fmt.Println(c)
  12. fmt.Println(d)
  13. */
  14. // createSlice()
  15. // funcForSlice()
  16. sliceCapacity()
  17. // mySlice()
  18. }
  19. func createSlice() {
  20. baseArray := [8]string{"Anna", "Max", "Eva", "Leo", "Nina", "Tom", "Sophie", "Chris"}
  21. slice1 := baseArray[1:5] // со 2 по 5 элемент
  22. slice2 := baseArray[:3] // c 1 по 3 элемент
  23. slice3 := baseArray[4:] // c 5 до конца
  24. fmt.Println(slice1)
  25. fmt.Println(slice2)
  26. fmt.Println(slice3)
  27. }
  28. func funcForSlice() {
  29. numbers := []int{10, 20, 30}
  30. numbers = append(numbers, 40, 50)
  31. fmt.Println(numbers)
  32. }
  33. func sliceCapacity() {
  34. baseArray := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
  35. fmt.Printf("Базовый массив: %v\n", baseArray)
  36. baseSlice := baseArray[5:8]
  37. fmt.Printf(
  38. "Срез, основанный на базовом массиве длиной %d и емкостью %d: %v\n",
  39. len(baseSlice), cap(baseSlice), baseSlice)
  40. pointer := fmt.Sprintf("%p", baseSlice)
  41. baseSlice = append(baseSlice, 10)
  42. fmt.Printf("Массив: %v\n", baseArray)
  43. fmt.Printf(
  44. "Срез, основанный на базовом массиве длиной %d и емкостью %d: %v\n",
  45. len(baseSlice), cap(baseSlice), baseSlice)
  46. fmt.Println(pointer == fmt.Sprintf("%p", baseSlice))
  47. baseSlice = append(baseSlice, 11, 12, 13)
  48. fmt.Printf("Массив: %v\n", baseArray)
  49. fmt.Printf(
  50. "Срез, основанный на базовом массиве длиной %d и емкостью %d: %v\n",
  51. len(baseSlice), cap(baseSlice), baseSlice)
  52. fmt.Println(pointer == fmt.Sprintf("%p", baseSlice))
  53. // fmt.Println(pointer)
  54. }
  55. func mySlice() {
  56. // var baseSlice []int
  57. baseSlice := []int{1, 2, 3}
  58. // var baseSlice []int = []int{1, 2, 3}
  59. fmt.Printf("Type %T\n", baseSlice)
  60. fmt.Printf("Len baseSlice: %d, capacity: %d\n", len(baseSlice), cap(baseSlice))
  61. fmt.Println(baseSlice)
  62. // firstSlice :=
  63. }