Sobes.tech
Junior — Middle

Кадом функсия ва амалҳои дарунсохт барои слайс, ки ҳанӯз инициализатсия нашудааст, иҷозат дода мешаванд?

sobes.tech AI

Ҷавоб аз AI

Дар забони Go, як слайс, ки инициализатсия нашудааст (яъне nil аст), барои амалҳои зерин истифода мешавад:

  • Санҷиши nil: if slice == nil {}
  • Донистани дарозӣ ва иқтидори: len(slice) ва cap(slice) 0 бармегардонанд
  • Иҷрои амали илова кардани унсурҳо бо истифода аз append, масалан:
var s []int // nil-слайс
s = append(s, 1, 2, 3) // ҳоло слайс инициализатсия шудааст ва унсурҳо дорад

Аммо, ба унсурҳо бо индекс дастрасӣ кардан мумкин нест, масалан s[0], агар слайс nil ё холӣ бошад — ин паника ба вуҷуд меорад.