Go dilinde veya diğer programlama dillerinde array yani diziler çok önemli yer tutmaktadır.Vereceğimiz örneklerle de görceğiniz gibi ihtiyacınıza uygun array üretip kullanabilirsiniz.
Temel amacı bir veya birden fazla veriyi tek değişken içinde tutmaktır.

Dizi ( Array ) oluşturma

[x]y burada y türünden x tane eleman içeren bir dizi oluşturmak istendiği belirtildi.

Örnek : yeni[10]string
Örneğimizde yeni adında 10 adet string türünde eleman saklanan bir dizi oluşturduk ; fakat dizi elemanlarını belirlemedik.

- Dizileri dilimlere ayırma

Go programlama dilinde bir diziye diliml tanımlamak için []y ifadesi kullanılır.
Burada y türrü ifade eder.
package main

import "fmt"

func main() {
i:=[5]int{5,3,8,9,10}
var parca []int=i[2:4]
fmt.Println(dilim)// [8,9]
	
}

- Dilimler dizilere olan başvuru gibidir

Go programlama dilinde dilimler veri saklamazlar.Sadece bağlı bulundukları dizinin bir bölümünü temsil ederler.
Şöyle düşünün bir veri tabanınız var ve web siteniz bu veri tabanından istediğiniz zaman istediğiniz veriyi çekiyor;fakat kendisi veri saklayamıyor.
Siz şayet dilimdeki bir veriyi değiştirirseniz dizide o veriye karşılık gelen de değişecektir.
package main

import "fmt"

func main() {
i:=[5]int{5,3,8,9,10}
var parca []int=i[2:4]
parca[0]=7
fmt.Println(i)// ekran çıktısı : [5,3,7,9,10]
	
}

Yukarıdaki örnekteki kod bölümünü inceleyelim :

- parca[0]=7 ile parca adındadaki dilimin ilk elemanını ( 8 ) 7 yaptık.

Farketteyiseniz i dizisinin 3. elemanı yani i[2] ' de 7 oldu.

- Dilim ön tanımlıları

Dilimleme yaparken üst ve alt sınırları, öntanımlılar kullanılacak şekilde atlayabilirsiniz. Öntanımlılar alt sınır için sıfır, üst sınır için ise dilim uzunluğudur.

Örneğin : x[5]int şeklinde bir dizimiz olsun.Bu dizi için :

x[:10]
x[0:]
x[0:10]
x[:]

Şeklindeki kullanımların hepsi aynıdır.
package main

import "fmt"

func main() {
i:=[5]int{5,3,8,9,10}
var parca []int=i[0:5]
var parca1 []int=i[0:]
var parca2 []int=i[:5]
var parca3 []int=i[0:5]

fmt.Println(parca,parca1,parca2,parca3)// ekran çıktısı : [5,3,8,9,10] [5,3,8,9,10] [5,3,8,9,10] [5,3,8,9,10]
	
}

Örneğimizde de görüldüğü gibi bütün dilimlerin ekran çıktısı aynı.

- Dilimler uzunluk ve kapasitesi

Dilim kapasitesi cap() ve uzunluğu ise len() ifadesi ile bulunur.
package main

import "fmt"

func main() {
	i := []int{5,3,8,9,10}
	printSlice(i)

	i = i[:0] // Bu şekilde uzunluğu sıfırladık.
	printSlice(i)

	i = i[:4] // Yeni uzunluk belirledik.
	printSlice(i)

	
	i = i[2:] // Bir ve ikinci elemanları attık.
	printSlice(i)
}

func printSlice(i []int) {
	fmt.Printf("uzunluk=%d kapasite=%d %v\n", len(i), cap(i), i)
}
/*Ekran çıktısı:
uzunluk=5 kapasite=5 [5 3 8 9 10]
uzunluk=0 kapasite=5 []
uzunluk=4 kapasite=5 [5 3 8 9]
uzunluk=2 kapasite=3 [8 9]
*/


- Boş dilimler

Go programlama dilinde boş dilimler " nill " değerini alırlar.Boş dilim özellikleri :
package main

import "fmt"

func main() {
	var i []int
	fmt.Println(i, len(i), cap(i))
	if i == nil {
		fmt.Println("Diliminiz boş!!!")
	}
}
/* Ekran çıktısı :
[] 0 0
Diliminiz boş!!!


Örnekte görüldüğü gibi i adlı dilimimiz boş değerlidir ve uzunluk , kapasite değerleri de 0 ' dır.