Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
package main
import "fmt"
func main() {
a := []int{1, 2, 3, 4}
b := a[1:3]
b[0] = 9
fmt.Println(a, len(b))
}[1 9 3 4] 2
- Ждать, что
aостанется[1 2 3 4], будтоa[1:3]создал копию: срез среза делит массив сa, поэтомуb[0] = 9пишет вa[1]. - Ждать, что
len(b)равно3: вa[1:3]конечный индекс не входит, поэтому вbэлементы с индексами 1 и 2.
- Как получить
b, изменения которого не доходят доa? - Что сделает
b[2] = 9в этой программе?