Array dalam Go adalah tipe nilai dan bukan tipe referensi. Ini berarti bahwa ketika mereka ditugaskan ke variabel baru, salinan array asli ditugaskan ke variabel baru. Jika perubahan dilakukan ke variabel baru, itu tidak akan tercermin dalam array asli.
|
1 2 3 4 5 6 7 8 9 10 11 |
package main import "fmt" func main() { a := [...]string{"Indonesia", "China", "India", "Germany", "France"} b := a // salinan a ditugaskan untuk b b[0] = "Singapore" fmt.Println("a is ", a) fmt.Println("b is ", b) } |
Pada program di atas pada baris no. 7, salinan a ditugaskan untuk b. Dalam baris no. 8, elemen pertama b berubah menjadi Singapura. Ini tidak akan mencerminkan dalam array asli a. Program akan menampilkan,
|
1 2 |
a adalah [Indonesia Cina India Jerman Prancis] b adalah [Singapura Cina India Jerman Prancis] |
Demikian pula ketika array dilewatkan ke fungsi sebagai parameter, mereka dilewatkan oleh nilai dan array asli tidak berubah.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package main import "fmt" func changeLocal(num [5]int) { num[0] = 55 fmt.Println("inside function ", num) } func main() { num := [...]int{5, 6, 7, 8, 8} fmt.Println("sebelum beralih ke function ", num) changeLocal(num) //num disahkan oleh nilai fmt.Println("setelah lulus function ", num) } |
Pada program di atas pada baris no. 13, array num sebenarnya diteruskan oleh nilai ke function changeLocal dan karenanya tidak akan berubah karena pemanggilan fungsi. Program ini akan menampilkan,
|
1 2 3 |
sebelum beralih ke function [5 6 7 8 8] inside function [55 6 7 8 8] setelah lulus function [5 6 7 8 8] |
Panjang array
Panjang array ditemukan dengan melewatkan array sebagai parameter ke fungsi len.
|
1 2 3 4 5 6 7 8 9 |
package main import "fmt" func main() { a := [...]float64{67.7, 89.8, 21, 78} fmt.Println("length of a is",len(a)) } |
Output dari program di atas adalah panjang a adalah 4
Iterasi array menggunakan rentang
For loop dapat digunakan untuk beralih pada elemen array.
|
1 2 3 4 5 6 7 8 9 10 |
package main import "fmt" func main() { a := [...]float64{67.7, 89.8, 21, 78} for i := 0; i < len(a); i++ { //perulangan dari 0 hingga panjang array fmt.Printf("%d th element of a is %.2f\n", i, a[i]) } } |
Program di atas menggunakan for for untuk beralih ke elemen-elemen array mulai dari indeks 0 hingga panjang array – 1. Program ini berfungsi dan akan mencetak,
|
1 2 3 4 |
0 th element of a is 67.70 1 th element of a is 89.80 2 th element of a is 21.00 3 th element of a is 78.00 |
Oke itulah tadi pembahasan saya tentang Array dalam Bahasa Pemrograman Golang Part 2, semoga bermanfaat.