Loading...

Массивдер

 

Массивдер белгилүү бир типтеги элементтердин ырааттуулугун билдирет. Массив төмөнкүдөй аныкталат:

1

var numbers [число_элементов]тип_элементов

Мисалы, беш int элементтен турган массив:

1

var numbers [5]int

Бул аныктама менен массивдин бардык элементтери демейки маанилер менен инициализацияланат. Бирок массивдин элементтерин башка маанилер менен инициализациялоого да болот:

1

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

Маанилер үтүр менен бөлүнгөн тармал кашааларга берилет. Бул учурда, маанилер массивдин узундугунан көп болушу мүмкүн эмес. Бул учурда массивдин узундугу 5ти түзөт, андыктан тармал кашааларда бештен ашык элементти көрсөтүүгө болбойт. Бирок сиз азыраак элементтерди аныктай аласыз:

1

2

var numbers [5]int = [5]int{1,2}

fmt.Println(numbers)    // [1 2 0 0 0]

Бул учурда, эч кандай мааниси көрсөтүлбөгөн элементтер демейки мааниге ээ болот.

Сиз ошондой эле массивдин өзгөрмөнүн стенографиялык аныктамасын колдоно аласыз:

1

numbers := [5]int{1,2,3,4,5}

Эгерде узундуктун ордуна төрт бурчтуу кашаанын ичинде эллипс көрсөтүлсө, массивдин узундугу ага берилген элементтердин санына жараша аныкталат:

1

2

3

4

var numbers = [...]int{1,2,3,4,5}   // длина массива 5

numbers2 := [...]int{1,2,3}         // длина массива 3

fmt.Println(numbers)                // [1 2 3 4 5]

fmt.Println(numbers2)           // [1 2 3]

Массивдин узундугу анын түрүнүн бир бөлүгү болуп саналатЖана, мисалы, төмөнкү эки массив бир эле типтеги эки маалыматты сактаса да, ар кандай маалыматтарды билдирет:

1

2

3

var numbers [3]int = [3]int{1, 2, 3}

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

numbers = numbers2  // ! Ошибка

Жана бул учурда, дайындоодо биз ката алабыз, анткени биз бир түрдөгү маалыматтарды башка түрдөгү өзгөрмөгө өткөрүүгө аракет кылып жатабыз.

Индекс

Массивдин элементтерине жетүү үчүн индекстер колдонулат - элементтердин сандары. Бул учурда, номерлөө нөлдөн башталат, башкача айтканда, биринчи элемент 0 индексине ээ болот. Индекс чарчы кашаанын ичинде көрсөтүлөт. Индекс боюнча сиз элементтин маанисин ала аласыз же аны өзгөртө аласыз:

1

2

3

4

5

6

7

8

9

10

package main

import "fmt"

 

func main() {

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

    fmt.Println(numbers[0])     // 1

    fmt.Println(numbers[4])     // 5

    numbers[0] = 87

    fmt.Println(numbers[0])     // 87

}

Массивдеги индекстер чындыгында тиешелүү мааниге жетүүгө мүмкүн болгон ачкыч катары иштешет. Жана принцип боюнча, кайсы ачкычка кайсы маани туура келерин ачык көрсөтө алабыз. Бул учурда, сандык баскычтар өсүү тартибинде жайгаштырылбайт:

1

2

colors := [3]string{2: "blue", 0: "red", 1: "green"}

fmt.Println(colors[2])      // blue