Massivlar
Massiv (Array) — bu bir xil turdagi ma'lumotlarning belgilangan tartibdagi va o'zgarmas o'lchamli to'plamidir.
Faraz qilaylik, 5 nafar talabaning yoshini saqlashimiz kerak. Buning uchun 5 ta alohida o'zgaruvchi yaratish o'rniga bitta massiv yaratish ancha qulay va samaralidir.

Go tilida massiv quyidagi sintaksis yordamida e'lon qilinadi:
var array_variable = [size]datatype{elements of array}
Bu yerda:
size — massivning o'lchami (nechta element sig'ishi).datatype — massivda saqlanadigan ma'lumot turi (int, string, float64 va h.k.).{} qavslar ichida massiv elementlari vergul bilan ajratib yoziladi.package main
import "fmt"
func main() {
// 5 ta butun sondan iborat massiv e'lon qilamiz
var arrayOfInteger = [5]int{1, 5, 8, 0, 3}
fmt.Println(arrayOfInteger)
}
Natija:
[1 5 8 0 3]
Bu yerda [5]int massiv faqat 5 ta butun son qabul qila olishini bildiradi.
[...])Agar massiv o'lchamini qo'lda yozishni istamasangiz, uning o'rniga ... (uch nuqta) qo'yishingiz mumkin. Kompilyator elementlar soniga qarab massiv hajmini avtomatik belgilaydi:
package main
import "fmt"
func main() {
// Hajmi avtomatik hisoblanadigan satrlar massivi
var arrayOfString = [...]string{"Salom", "Go Dasturchi"}
fmt.Println(arrayOfString)
}
Natija:
[Salom Go Dasturchi]
[!WARNING] Agar
[]ichini bo'sh qoldirsangiz, u massiv emas, balki slays (slice) bo'lib qoladi. Shuning uchun aniqlashtirilmagan o'lchamli massiv yaratishda[...]yozilishi shart!
:=) yordamidaGoda massivlarni qisqa := operatori orqali ham e'lon qilish mumkin:
package main
import "fmt"
func main() {
// Qisqa e'lon qilish sintaksisi
arrayOfString := [...]string{"Salom", "Go Dasturchi"}
fmt.Println(arrayOfString)
}
Goda massivning har bir elementi tartib raqami — indeks bilan bog'langan bo'ladi. Elementga uning indeksi orqali murojaat qilinadi.
[!IMPORTANT] Massiv indekslari doimo
0dan boshlanadi. Ya'ni birinchi element indeksi0, ikkinchisiniki1va hokazo.
package main
import "fmt"
func main() {
languages := [3]string{"Go", "Java", "C++"}
// 0-indeksdagi elementni olish
fmt.Println(languages[0]) // Go
// 2-indeksdagi elementni olish
fmt.Println(languages[2]) // C++
}
Natija:
Go
C++

package main
import "fmt"
func main() {
// 3 ta elementli bo'sh massiv e'lon qilamiz
var arrayOfIntegers [3]int
// Indekslar bo'yicha qiymat tayinlaymiz
arrayOfIntegers[0] = 5
arrayOfIntegers[1] = 10
arrayOfIntegers[2] = 15
fmt.Println(arrayOfIntegers)
}
Natija:
[5 10 15]
Goda faqat ma'lum bir indekslarga qiymat berib, qolganlarini standart (default) qiymatda qoldirish mumkin:
package main
import "fmt"
func main() {
// Faqat 0 va 3-indekslarga qiymat beramiz
arrayOfIntegers := [5]int{0: 7, 3: 9}
fmt.Println(arrayOfIntegers)
}
Natija:
[7 0 0 9 0]
Bu yerda ko'rsatilmagan indekslar (1, 2, 4) avtomatik ravishda int turning birlamchi qiymati bo'lgan 0 bilan to'ldirildi.
Massiv elementini o'zgartirish uchun kerakli indeksga yangi qiymat o'zlashtirish kifoya:
package main
import "fmt"
func main() {
weather := [3]string{"Yomg'irli", "Quyoshli", "Bulutli"}
// 2-indeksdagi elementni o'zgartiramiz
weather[2] = "Bo'ronli"
fmt.Println(weather)
}
Natija:
[Yomg'irli Quyoshli Bo'ronli]
len())Massivda nechta element borligini bilish uchun o'rnatilgan len() funksiyasidan foydalaniladi:
package main
import "fmt"
func main() {
var arrayOfIntegers = [...]int{1, 5, 8, 0, 3, 10}
// len() yordamida massiv uzunligini topamiz
length := len(arrayOfIntegers)
fmt.Println("Massiv uzunligi:", length)
}
Natija:
Massiv uzunligi: 6
Massivning har bir elementini navbatma-navbat ekranga chiqarish uchun for siklidan foydalanish mumkin:
package main
import "fmt"
func main() {
age := [...]int{12, 4, 5}
// Massiv bo'ylab sikl
for i := 0; i < len(age); i++ {
fmt.Println(age[i])
}
}
Natija:
12
4
5
Ko'p o'lchamli massiv — bu massivlarning massividir. Eng ko'p qo'llaniladigani ikki o'lchamli (2D) massiv bo'lib, u qatorlar va ustunlardan iborat matritsani ifodalaydi:
| 0-ustun | 1-ustun | |
|---|---|---|
| 0-qator | arrayInteger[0][0] = 1 | arrayInteger[0][1] = 2 |
| 1-qator | arrayInteger[1][0] = 3 | arrayInteger[1][1] = 4 |
package main
import "fmt"
func main() {
// 2x2 o'lchamli massiv yaratamiz
arrayInteger := [2][2]int{{1, 2}, {3, 4}}
// Ichma-ich for sikllari orqali elementlarni chiqaramiz
for i := 0; i < 2; i++ {
for j := 0; j < 2; j++ {
fmt.Println(arrayInteger[i][j])
}
}
}
Natija:
1
2
3
4
Ko'p o'lchamli massivni matritsa sifatida ham tasavvur qilish mumkin:
