Sobes.tech
Junior — Middle

Go-da dilimlə işləyərkən, əgər o açıq şəkildə başlanmamışsa, hansı əməliyyatlar mümkündür?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da, əgər dilim (slice) açıq şəkildə inicializasiya edilməyibsə (yəni, nil dəyərinə malikdirsə), aşağıdakı əməliyyatlar həyata keçirilə bilər:

  • nil olub-olmadığını yoxlamaq (məsələn, if slice == nil), bu, dilimin inicializasiya olunub-olunmadığını müəyyən etmək üçün faydalıdır.
  • Uzunluq və tutumu len(slice)cap(slice) istifadə etməklə əldə etmək. nil-dilimin uzunluğu və tutumu 0-dır.
  • Element əlavə etmək üçün append operatorundan istifadə etmək. Bu, orijinal dilim nildirsə, avtomatik olaraq yeni dilim yaradacaq və yaddaş ayıracaq.

Ancaq, nil və ya boş dilim elementlərinə indekslə giriş etmək mümkün deyil, əks halda panic baş verər.

Nümunə:

var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // indi s inicializasiya olunub və [1] ehtiva edir