Go в примери: Поредици

В Go, поредица1 се нарича подредена последователност от членове2 с определена дължина. Обикновено в програмен код на Go отрязъците3 се срещат много по-често; поредиците са полезни в няои определени случаи, когато предварително (още по време на компилиране) знаем дължината им.


  1. array, поредица, масив. От простонароден латински през френски – ar-redare (вижте (https://www.etymonline.com/search?q=array)) – слагам в ред, подреждам.
  2. elements – елементи, членове
  3. slice – отрязък (от поредица): поредица с променлива по време на изпълнение дължина
package main
import "fmt"
func main() {

Тук създаваме поредицата a, която съдържа точно 5 цели числа. Видът и броят на членовете заедно определят вида на поредицата. По подразбиране поредицата има нулева стойност. В случая, това означава, че тази поредица съдържа пет нули.

    var a [5]int
    fmt.Println("празен:", a)

Можем да зададем стойност на определено място1 като напишем поредица[място] = стойност, а да вземем стойността, като напишем поредица[място].


  1. index – индекс, показалец, поредно място в поредицата
    a[4] = 100
    fmt.Println("задаваме:", a)
    fmt.Println("достъпваме:", a[4])

Вградената в езика фуннкция len връща дължината на поредицата.

    fmt.Println("дължина:", len(a))

Използвайте следния правопис, за да обявите и зададете стойности за членовете в поредицата на един ред.

    b := [5]int{1, 2, 3, 4, 5}
    fmt.Println("обявяваме:", b)

Също така можете да накарате компилатора да преброи членовете в поредицата, като напишете ... между квадратните скоби.

    b = [...]int{1, 2, 3, 4, 5}
    fmt.Println("обявяваме:", b)

Ако укажете поредно място с :, междинните неупоменати членове ще бъдат зададени с нулеви стойности.

    b = [...]int{100, 3: 400, 500}
    fmt.Println("места:", b)

Поредиците са едномерни, но можете да създадете съставни видове поредици, за да създадете многомерни структури от данни.

    var twoD [2][3]int
    for i := range 2 {
        for j := range 3 {
            twoD[i][j] = i + j
        }
    }
    fmt.Println("двумерна: ", twoD)

Можете едновременно да обявите и наченете поредици.

    twoD = [2][3]int{
        {1, 2, 3},
        {1, 2, 3},
    }
    fmt.Println("двумерна: ", twoD)
}

Забележете, че поредиците се показват на екрана във вида [v1 v2 v3 ...], когато ги отпечатваме с fmt.Println.

$ go run arrays.go
празен: [0 0 0 0 0]
задаваме: [0 0 0 0 100]
достъпваме: 100
дължина: 5
обявяваме: [1 2 3 4 5]
обявяваме: [1 2 3 4 5]
места: [100 0 0 400 500]
двумерна:  [[0 1 2] [1 2 3]]
двумерна:  [[1 2 3] [1 2 3]]

Следващ пример: .