Senior
Որ տվյալների տեսակները Go-ում հղումային են?
sobes.tech AI
Պատասխան AI-ից
В Go ссылочными типами данных считаются те, которые хранят указатель на область памяти, а не сами данные. К ним относятся:
- Указатели (
*Type) — хранят адрес значения. - Срезы (
[]Type) — структура, содержащая указатель на массив, длину и ёмкость. - Карты (map) — внутренне реализованы через хеш-таблицу, передаются по ссылке.
- Каналы (chan) — ссылочный тип для коммуникации между горутинами.
- Функции — переменные-функции передаются по ссылке.
Например, при передаче среза в функцию копируется структура с указателем, но не копируются сами элементы массива, на который он ссылается. Это позволяет эффективно работать с большими объемами данных без копирования.
func modify(slice []int) {
slice[0] = 100
}
func main() {
s := []int{1, 2, 3}
modify(s)
fmt.Println(s) // [100 2 3]
}