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() // deleteElement() // copySlice() // foo1() foo2() } 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 := } func deleteElement() { a := []int{1, 2, 3, 4, 5, 6, 7} a = append(a[0:2], a[3:]...) fmt.Println(a) } func copySlice() { a := []int{1, 2, 3} b := make([]int, 3, 3) n := copy(b, a) fmt.Printf("a = %v\n", a) fmt.Printf("b = %v\n", b) fmt.Printf("Скопировано %d элементов\n", n) // fmt.Printf("%v", b) // fmt.Printf("%d %d\n", len(b), cap(b)) } func foo1() { var n, val int fmt.Scan(&n) var mySlice []int for i := 0; i < n; i++ { fmt.Scan(&val) mySlice = append(mySlice, val) } fmt.Println(mySlice[3]) } func foo2() { var n, max int fmt.Scan(&n) mySlice := make([]int, n) for i := 0; i < n; i++ { fmt.Scan(&mySlice[i]) } for index, value := range mySlice { fmt.Printf("Index: %d, value: %d\n", index, value) if value > max { max = value } } for _, value := range mySlice { fmt.Println(value) } fmt.Println(max) fmt.Printf("Создан slice %v\n", mySlice) fmt.Printf("len: %d, cap: %d\n", len(mySlice), cap(mySlice)) }