Go با مثال: آرایه‌ها

در Go، یک آرایه دنباله‌ای شماره‌دار از عناصر با طول مشخص است. در کدهای معمول Go، اسلایس‌ها بسیار رایج‌ترند؛ آرایه‌ها در برخی موقعیت‌های خاص به کار می‌آیند.

package main
import "fmt"
func main() {

اینجا آرایهٔ a را می‌سازیم که دقیقاً ۵ عدد int نگه می‌دارد. نوع عناصر و طول، هر دو بخشی از نوع آرایه هستند. به‌طور پیش‌فرض آرایه مقدار صفر دارد که برای int یعنی همه‌ی عناصر 0 هستند.

    var a [5]int
    fmt.Println("emp:", a)

با نحو array[index] = value می‌توانیم مقداری را در یک اندیس قرار دهیم و با array[index] آن را بخوانیم.

    a[4] = 100
    fmt.Println("set:", a)
    fmt.Println("get:", a[4])

تابع داخلی len طول آرایه را برمی‌گرداند.

    fmt.Println("len:", len(a))

از این نحو برای تعریف و مقداردهی آرایه در یک خط استفاده کنید.

    b := [5]int{1, 2, 3, 4, 5}
    fmt.Println("dcl:", b)

همچنین می‌توانید با ... شمردن تعداد عناصر را به کامپایلر بسپارید.

    b = [...]int{1, 2, 3, 4, 5}
    fmt.Println("dcl:", b)

اگر اندیس را با : مشخص کنید، عناصر بینِ آن‌ها مقدار صفر می‌گیرند.

    b = [...]int{100, 3: 400, 500}
    fmt.Println("idx:", b)

نوع آرایه یک‌بعدی است، اما می‌توانید نوع‌ها را با هم ترکیب کنید و ساختارهای داده‌ی چندبعدی بسازید.

    var twoD [2][3]int
    for i := range 2 {
        for j := range 3 {
            twoD[i][j] = i + j
        }
    }
    fmt.Println("2d: ", twoD)

می‌توانید آرایه‌های چندبعدی را هم یک‌جا بسازید و مقداردهی کنید.

    twoD = [2][3]int{
        {1, 2, 3},
        {1, 2, 3},
    }
    fmt.Println("2d: ", twoD)
}

توجه کنید که آرایه‌ها هنگام چاپ با fmt.Println به شکل [v1 v2 v3 ...] نمایش داده می‌شوند.

$ go run arrays.go
emp: [0 0 0 0 0]
set: [0 0 0 0 100]
get: 100
len: 5
dcl: [1 2 3 4 5]
dcl: [1 2 3 4 5]
idx: [100 0 0 400 500]
2d:  [[0 1 2] [1 2 3]]
2d:  [[1 2 3] [1 2 3]]

مثال بعدی: .