Golang – Embeded Struct

Kita dapat memasukkan struct ke dalam struct seperti halnya tipe data biasa. Seperti terlihat pada kode dibawah ini.

Pada contoh di atas kita dapat mengakses posisi dari circle dan rectangle dengan pengakses variable p, dan mendapatkan nilai dari x dan y nya. Struct diatas adalah struct normal tidak ada keistemewaan.

Namun yang akan kita bahas di disini adalah embeded struct atau kalau bahasa programming lain bisa disebut dengan inheritance. Maksut dari inheritance adalah kita dapat mengakses semua yang ada pada struct yang kita embed ke struct baru dan kita juga dapat mengakses method dari parentnya dari struct anak. Perhatikan contoh berikut :

Kalau kita perhatikan diatas, perbedaan antara embeded struct dengan struct normal diantaranya :

  • Saat mendeklarasi struct embeded kita tidak perlu mendeklarasi struct parent (struct yang kita embed) ke dalam variable. Dalam contoh struct circle, kita langsung mendeklarasikan posisi (tanpa variable p pada contoh yang sebelumnya)
  • Saat mengakses posisi pada line 25, kita dapat langsung mengakses variable dari parent nya yaitu posisinya.
  • Selain mengakses variable parent, kita juga dapat mengakses method dari parent. Seperti pada contoh parent (struct posisi) memiliki method dengan nama printMe. Dan kita bisa memanggil method tersebut dari struct yang mengembed posisi pada struct nya. Pada contoh ini ada pada line 28 dan 29, dimana kita bisa panggil method posisi dari struct circle dan rectangle

Inheritance ini digunakan jika kita memiliki beberapa struct dimana struct tersebut dapat sharing method ataupun variable, sehingga memungkinan untuk menulis kode lebih sedikit. Seperti pada contoh diatas untuk variable x, dan y tidak perlu dideklarasikan kembali pada struct circle dan rectangle karena sudah embed dengan struct posisi.

Golang tutorial index

Leave a Reply

Your email address will not be published. Required fields are marked *