Sobes.tech
Junior — Senior
68

Влияние функции append на слайс, переданный по значению

Task condition

Определите, какой вывод получит программа, когда срез передаётся в функцию, а внутри неё к нему применяется append. Учтите, что в Go срезы передаются как значение, поэтому изменения, внесённые в срез внутри функции, могут не отразиться на оригинальном срезе, объявленном вне функции.

func main() {
    testSlice := make([]string, 0, 3)
    testSlice = append(testSlice, "Привет")
    testSlice = append(testSlice, "Привет")
    test(testSlice)

    fmt.Println(testSlice)
}

func test(testSlice []string) {
    testSlice = append(testSlice, "Пока")
}