Struktur adalah tipe yang ditentukan pengguna yang mewakili kumpulan bidang. Ini dapat digunakan di tempat-tempat di mana masuk akal untuk mengelompokkan data ke dalam satu unit daripada mempertahankan masing-masing sebagai tipe terpisah. Misalnya seorang karyawan memiliki Nama depan, Nama belakang dan usia. Masuk akal untuk mengelompokkan ketiga properti ini menjadi karyawan struktur tunggal.
Anda bisa melewatkan struktur sebagai argumen fungsi dengan cara yang sangat mirip dengan Anda melewatkan variabel atau pointer lainnya. Anda akan mengakses variabel struktur dengan cara yang sama seperti yang Anda lakukan pada contoh di atas –
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
package main import "fmt" type Books struct { title string author string subject string book_id int } func main() { var Book1 Books /* Declare Book1 of type Book */ var Book2 Books /* Declare Book2 of type Book */ Book1.title = "Go Programming" Book1.author = "Mahesh Kumar" Book1.subject = "Go Programming Tutorial" Book1.book_id = 6495407 Book2.title = "Telecom Billing" Book2.author = "Zara Ali" Book2.subject = "Telecom Billing Tutorial" Book2.book_id = 6495700 printBook(Book1) printBook(Book2) } func printBook( book Books ) { fmt.Printf( "Book title : %s\n", book.title); fmt.Printf( "Book author : %s\n", book.author); fmt.Printf( "Book subject : %s\n", book.subject); fmt.Printf( "Book book_id : %d\n", book.book_id); } |
Ketika kode di atas dikompilasi dan dieksekusi, ia menghasilkan hasil sebagai berikut –
|
1 2 3 4 5 6 7 8 |
Book title : Go Programming Book author : Mahesh Kumar Book subject : Go Programming Tutorial Book book_id : 6495407 Book title : Telecom Billing Book author : Zara Ali Book subject : Telecom Billing Tutorial Book book_id : 6495700 |
Pointers to Structures
Anda bisa mendefinisikan pointer ke struktur dengan cara yang sama seperti Anda mendefinisikan pointer ke variabel lain sebagai berikut –
|
1 |
var struct_pointer *Books |
Sekarang, Anda dapat menyimpan alamat variabel struktur di variabel penunjuk yang ditentukan di atas. Untuk menemukan alamat variabel struktur, tempatkan operator & sebelum nama struktur sebagai berikut –
|
1 |
struct_pointer = &Book1; |
Untuk mengakses anggota struktur menggunakan pointer ke struktur itu, Anda harus menggunakan “.” operator sebagai berikut –
|
1 |
struct_pointer.title; |
Mari kita tulis kembali contoh di atas menggunakan pointer struktur –
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
package main import "fmt" type Books struct { title string author string subject string book_id int } func main() { var Book1 Books /* Declare Book1 of type Book */ var Book2 Books /* Declare Book2 of type Book */ Book1.title = "Go Programming" Book1.author = "Mahesh Kumar" Book1.subject = "Go Programming Tutorial" Book1.book_id = 6495407 Book2.title = "Telecom Billing" Book2.author = "Zara Ali" Book2.subject = "Telecom Billing Tutorial" Book2.book_id = 6495700 printBook(&Book1) printBook(&Book2) } func printBook( book *Books ) { fmt.Printf( "Book title : %s\n", book.title); fmt.Printf( "Book author : %s\n", book.author); fmt.Printf( "Book subject : %s\n", book.subject); fmt.Printf( "Book book_id : %d\n", book.book_id); } |
Ketika kode di atas dikompilasi dan dieksekusi, ia menghasilkan hasil sebagai berikut –
|
1 2 3 4 5 6 7 8 |
Book title : Go Programming Book author : Mahesh Kumar Book subject : Go Programming Tutorial Book book_id : 6495407 Book title : Telecom Billing Book author : Zara Ali Book subject : Telecom Billing Tutorial Book book_id : 6495700 |
Oke itulah tadi pembahasan saya tentang Struktur sebagai Function Argumen dalam Golang, semoga bermanfaat.