|
|
@@ -0,0 +1,80 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import "fmt"
|
|
|
+
|
|
|
+func main() {
|
|
|
+ /*
|
|
|
+ var a []int
|
|
|
+ var b []int = []int{2, 4, 6}
|
|
|
+ c := []int{2, 4, 5}
|
|
|
+ d := []int{2: 10}
|
|
|
+
|
|
|
+ fmt.Println(a)
|
|
|
+ fmt.Println(b)
|
|
|
+ fmt.Println(c)
|
|
|
+ fmt.Println(d)
|
|
|
+ */
|
|
|
+ // createSlice()
|
|
|
+ // funcForSlice()
|
|
|
+ sliceCapacity()
|
|
|
+ // mySlice()
|
|
|
+}
|
|
|
+
|
|
|
+func createSlice() {
|
|
|
+ baseArray := [8]string{"Anna", "Max", "Eva", "Leo", "Nina", "Tom", "Sophie", "Chris"}
|
|
|
+
|
|
|
+ slice1 := baseArray[1:5] // со 2 по 5 элемент
|
|
|
+ slice2 := baseArray[:3] // c 1 по 3 элемент
|
|
|
+ slice3 := baseArray[4:] // c 5 до конца
|
|
|
+
|
|
|
+ fmt.Println(slice1)
|
|
|
+ fmt.Println(slice2)
|
|
|
+ fmt.Println(slice3)
|
|
|
+}
|
|
|
+
|
|
|
+func funcForSlice() {
|
|
|
+ numbers := []int{10, 20, 30}
|
|
|
+ numbers = append(numbers, 40, 50)
|
|
|
+
|
|
|
+ fmt.Println(numbers)
|
|
|
+}
|
|
|
+
|
|
|
+func sliceCapacity() {
|
|
|
+ baseArray := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
|
|
|
+ fmt.Printf("Базовый массив: %v\n", baseArray)
|
|
|
+
|
|
|
+ baseSlice := baseArray[5:8]
|
|
|
+ fmt.Printf(
|
|
|
+ "Срез, основанный на базовом массиве длиной %d и емкостью %d: %v\n",
|
|
|
+ len(baseSlice), cap(baseSlice), baseSlice)
|
|
|
+
|
|
|
+ pointer := fmt.Sprintf("%p", baseSlice)
|
|
|
+
|
|
|
+ baseSlice = append(baseSlice, 10)
|
|
|
+
|
|
|
+ fmt.Printf("Массив: %v\n", baseArray)
|
|
|
+ fmt.Printf(
|
|
|
+ "Срез, основанный на базовом массиве длиной %d и емкостью %d: %v\n",
|
|
|
+ len(baseSlice), cap(baseSlice), baseSlice)
|
|
|
+ fmt.Println(pointer == fmt.Sprintf("%p", baseSlice))
|
|
|
+
|
|
|
+ baseSlice = append(baseSlice, 11, 12, 13)
|
|
|
+
|
|
|
+ fmt.Printf("Массив: %v\n", baseArray)
|
|
|
+ fmt.Printf(
|
|
|
+ "Срез, основанный на базовом массиве длиной %d и емкостью %d: %v\n",
|
|
|
+ len(baseSlice), cap(baseSlice), baseSlice)
|
|
|
+ fmt.Println(pointer == fmt.Sprintf("%p", baseSlice))
|
|
|
+ // fmt.Println(pointer)
|
|
|
+}
|
|
|
+
|
|
|
+func mySlice() {
|
|
|
+ // var baseSlice []int
|
|
|
+ baseSlice := []int{1, 2, 3}
|
|
|
+ // var baseSlice []int = []int{1, 2, 3}
|
|
|
+ fmt.Printf("Type %T\n", baseSlice)
|
|
|
+ fmt.Printf("Len baseSlice: %d, capacity: %d\n", len(baseSlice), cap(baseSlice))
|
|
|
+ fmt.Println(baseSlice)
|
|
|
+
|
|
|
+ // firstSlice :=
|
|
|
+}
|