github.com/maikovskiys/l1tasks@v0.0.0-20230927052451-6436d7687dc9/learn/dev14/main.go (about)

     1  package main
     2  
     3  import "fmt"
     4  
     5  /*
     6  при append переполняется исходный массив, создается новый массив в 2 раза больше первого, копируются старые элементы и добавляется новый.
     7  Получаем слайс len()=3,cap()=4
     8  меняем элементы уже в новом массиве
     9  */
    10  func main() {
    11  	slice := []string{"a", "a"}
    12  
    13  	func(slice []string) {
    14  		slice = append(slice, "a")
    15  		slice[0] = "b"
    16  		slice[1] = "b"
    17  		fmt.Print(slice)
    18  	}(slice)
    19  	fmt.Print(slice)
    20  }