Teswirler (0)

Ýüklenýär...
User Avatar

Software Engineer | Creator

Sobesedowaniýadaky soraglaryň biri: 4 minutuda Array we Slice-yň tapawudy #golang #coding #array #go

2 minut alar

VIENNA THICK SLICED - Rotella's Italian Bakery


Slices we Arrays Go dilde gaty meňzeş görünip biler, ýöne wajyp bolýan tapawutlary bardyr:

Arrays

Massiwler (Array) - bu bellenilen ululygynyň elementleriň kolleksiýasy. Onuň razmerini başda döredilende berilýär we üýtgedilmeýär. Hemme elementleri bir tipde bolýar. Şonuň üçin olar az ulanylýar, sebäbi biz massiwyň bolup biljek göwrümini hemişe öňden anyklap bilemzok.
Massiwyň göwrümini bilmek üçin len() komandany ullanyp bolar.
Ony elementleri salman döredilende, bellenen tipyň nulewoý bahasyny ullanýar.


var defArr [3]string = [3]string{"one", "two", "three"}
fmt.Println(defArr)  // [one two three]

var array [3]int
fmt.Println(array)  // [0 0 0]

var arr [5]int
arr = [5]int{1, 2, 3, 4, 5} 

 
Slices
- Slice bolsa dinamiki struktura, we onuň içinde Massiw-a pointer we Len (uzynlyk) bilen Cap (sygym) ýaly maglumaty bardyr. Massiwden tapawutly ýeri - ol öz göwrümini üýtgedip bilýar, şonun üçin hem has kop ulanylýar

type slice struct {
 array unsafe.Pointer
 len  int
 cap  int
}

Cap (sygymy) täze ýady allokasiýa etmäň ýene goşup boljak elementleriň sanyny görkezýär.
Slice döredilende, Go massiwy saklamak üçin gerek bolup biljek ýady döretýär. Onuň razmeri öňden belli bolsa, edil massiwlerde ýaly, şu ýerde hem bellenilen tipyň nulewoý bahaly elementler bilen doldurýar.


s := []string{"e", "l", "e", "m", "e", "n", "t"}
s[0] = "E"
fmt.Println(s)  // [E l e m e n t]
s1 := s[:4]
s2 := s[1:6]
fmt.Println(s1, s2)  // [E l e m] [l e m e n]
s1[1] = "L"
fmt.Println(s, s2)  // [E L e m e n t] [L e m e n]
sl := make([]int, 4, 6)
fmt.Println(sl, len(sl), cap(sl)) // [0,0,0,0] 4 6

Keywords:

  • Go arrays and slices
  • Arrays in Go language
  • Slices in Go language
  • Go slice vs array differences
  • Go programming slices
  • Go dynamic arrays (slices)
  • Fixed-size arrays in Go
  • Go language collections
  • Memory management in Go slices
  • Go slice len vs cap
  • Go slice capacity and length
  • Go programming tutorial arrays and slices
  • Slice resizing in Go
  • Array initialization in Go
  • How to use slices in Go


 

10 |