Sobes.tech
Junior — Middle

Goда слайс менен иштөөдө, эгер ал ачык эле башталбаса, кандай аракеттерге уруксат берилет?

sobes.tech AI

AIден жооп

Goда, эгер слайс (slice) ачык түрдө башталбаса (демек, nil мааниге ээ болсо), төмөнкү аракеттерди жасоого болот:

  • nil экенин текшерүү (мисалы, if slice == nil), бул слайс башталдыбы же жокпу аныктоо үчүн пайдалуу.
  • Узундугун жана сыйымдуулугун len(slice) жана cap(slice) аркылуу алуу. nil-слайс үчүн узундук жана сыйымдуулук 0 болот.
  • Элементтерди кошуу үчүн append операторун колдонуу. append автоматтык түрдө жаңы слайс түзүп, эс тутумду бөлүп берет, эгер оригинал слайс nil болсо.

Бирок, nil же бош слайс элементтерине индекси боюнча кирүү мүмкүн эмес, анткени ал паникага алып келет.

Мисал:

var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // эми s инициализацияланган жана [1] камтыйт