Bismillah
Langsung saja baca penjelasannya ya, konsepnya sama hanya beda gaya menjelaskannya. :)
atau kita sedikit bermain dengan playground ya ... kurang lebih seperti ini:
// ke-1
fmt.Println("\n###### Array ######\n")
intArray := [5]int{1,2,3,4,5}
for index,element := range intArray{
fmt.Println(index,"=>",element)
}
// ke-2
fmt.Println("\n###### Slice ######\n")
intSlice := make([]int,5)
intSlice[0]=1
intSlice[1]=2
intSlice[2]=3
intSlice[3]=4
intSlice[4]=5
for index,element := range intSlice{
fmt.Println(index,"=>",element)
}
// ke-3
fmt.Println("\n###### Map ######\n")
intStrMap := make(map[string]int)
intStrMap["A"]=0
intStrMap["B"]=1
intStrMap["C"]=2
intStrMap["D"]=3
intStrMap["E"]=4
for index,element := range intStrMap{
fmt.Println(index,"=>",element)
}
oya, ini gw dapet dari halaman ini: Golang Programs
Ke #1
Kita akan mencoba modifikasi source ini:
fmt.Print("\n###### Array ######\n")
intArray := [5]int{1,2,3,4,5}
for index,element := range intArray{
fmt.Println(index,"=>",element)
}
fmt.Print("\n###### Array ######\n")
intArray := [4]int{1,2,3,4,5}
for index,element := range intArray{
fmt.Println(index,"=>",element)
}
// output: ./prog.go:9:32: array index 4 out of bounds [0:4]
Menurut Mas Noval Agung, error
itu karena kapasitas dari array adalah 4
, sedangkan isi dari array itu berjumlah 5
, bagaimana kalo di isi 6
? silahkan cek playground ternyata tidak error, tetapi akan mengisi dengan nilai 0
. Nah, kita akan convert ke slice berdasarkan buku mas noval. kurang lebih seperti ini:
fmt.Print("\n###### Array ######\n")
intArray := []int{1,2,3,4,5}
newArray := intArray[0:4] // kita ambil nilai sebelum 4
for index,element := range newArray {
fmt.Println(index,"=>",element)
}
Silahkan cek playgroundnya.
Ke #2
Lanjut, kita akan modifikasi slice ini:
fmt.Print("\n###### Slice ######\n")
intSlice := make([]int,5)
intSlice[0]=1
intSlice[1]=2
intSlice[2]=3
intSlice[3]=4
intSlice[4]=5
for index,element := range intSlice{
fmt.Println(index,"=>",element)
}
sebetulnya slice tak perlu di-index datanya (dari buku yang gw baca) .. hems, coba kita ubah menjadi ini:
fmt.Print("\n###### Slice ######\n")
intSlice := []int{1,2,3,4,5}
for index,element := range intSlice{
fmt.Println(index,"=>",element)
}
ternyata berhasil tanpa error, silahkan cek playgroundnya
sumber: