TGViewer
Go tests Go tests @golangtests · 7.84K subscribers
Post #894 3.43K
👣 Что выведет программа построчно?


package main

import "fmt"

func main() {
s := make([]int, 2, 3)
s[0], s[1] = 1, 2

a := s[:2]
b := append(s, 3)

modify(a)
modify(b)

fmt.Println(s)
fmt.Println(a)
fmt.Println(b)
}

func modify(x []int) {
x = append(x, 100)
x[0] = 999
}


- Какие append используют тот же underlying array, а какие нет?

- В какой момент происходит реаллокация памяти?

Подсказка:

s, a и b сначала делят один backing array,

но не все изменения доходят до всех слайсов.


Ответ:
[999 2]
[999 2]
[999 2 100]



📌 Запустить код: https://go.dev/play/p/wVRz6QFmMCv
  • ❤ 10
  • 👍 5
  • 🔥 3
More from @golangtests
  1. Sep 26, 2026Nil-интерфейс в Go: почему err == nil выдаёт false? Nil-интерфейс в Go ломает даже опытных…
  2. Sep 23, 2026Задача по Go: `select` и побочные эффекты Что выведет программа? package main import "fmt"…
  3. Sep 23, 2026Не застревайте в прошлом — учитесь новым навыкам и ИИ Чтобы успевать за требованиями рынка…
  4. Sep 13, 2026👣 Задача на Go 1.27: concurrent job scheduler с generic methods Нужно реализовать библиот…
  5. Sep 13, 2026🔥 Хочешь расти в IT быстрее остальных? Перестань учиться в одиночку Можно годами смотреть…
  6. Sep 2, 2026👣 Go 1.27: почему две разные closure внезапно могут иметь одинаковый адрес функции? Что в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →