Junior — Middle
Чӣ гуна метавон роҳҳои эҷоди срез дар Go-ро бо истифода аз var, make ва таъин кардани индексҳо ё тавассути append фарқ кард?
sobes.tech AI
Ҷавоб аз AI
Дар Go, срезҳо метавонанд ба роҳҳои гуногун эҷод шаванд, ки дар инициализация ва тақсимоти хотира фарқ мекунанд:
- Эълон бо
var— срези nil-ро эҷод мекунад, ки ба ягон массив ишора намекунад ва дарозӣ ва иқтидори 0 дорад.
var s []int // срези nil
- Эҷоди срез тавассути
make— массивро бо дарозӣ ва иқтидори муайян тақсим мекунад ва срезро бармегардонад, ки ба он ишора мекунад.
s := make([]int, 5) // срези дарозии 5, пур аз сифрҳо
-
Таъин бо индексҳо — танҳо агар срез аллакай оғоз ёфта бошад ва дарозии кофӣ дошта бошад, имконпазир аст.
-
Илова кардани элементҳо тавассути
append— элементҳоро ба срез илова мекунад, ва агар лозим бошад, иқтидорро зиёд мекунад ва массиви навро таъин мекунад.
s = append(s, 10) // илова кардани элемент 10 ба срез
Ин тариқ, var срези холии nil-ро эҷод мекунад, make — срез бо хотираи тақсимшуда, таъин бо индексҳо талаб мекунад, ки дарозии мавҷуд бошад, ва append срезро динамикӣ васеъ мекунад.