في لغة Go، المصفوفة (Array) هي تسلسل مرقم من العناصر ذات طول محدد. في كود Go المعتاد، الشرائح (Slices) أكثر شيوعاً؛ المصفوفات مفيدة في بعض السيناريوهات الخاصة.
package main
import "fmt"
func main() {
هنا نقوم بإنشاء مصفوفة a تتسع لـ 5 أعداد صحيحة (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)
}
لاحظ أن المصفوفات تظهر بصيغة [v1 v2 v3 ...] عند طباعتها باستخدام fmt.Println.
تشغيل البرنامج:
$ 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]] المثال التالي: الشرائح (Slices).