Bagaimana cara Menetapkan Nilai Default untuk Bidang struct di Golang?

Bagaimana Cara Menetapkan Nilai Default Untuk Bidang Struct Di Golang



Golang adalah bahasa pemrograman modern yang semakin populer dalam beberapa tahun terakhir. Salah satu fitur hebat dari Golang adalah kemampuannya untuk mendefinisikan dan memanipulasi struct. Struktur adalah tipe data yang ditentukan pengguna yang memungkinkan pengembang untuk mengelompokkan bidang data terkait menjadi satu objek. Di Pergi, struct bisa memperoleh nilai dasar ditugaskan ke bidang mereka, yang membuat inisialisasi mereka jauh lebih mudah.

Dalam esai ini, kita akan mengeksplorasi bagaimana menetapkan a nilai default untuk bidang struct di Golang.

Apa itu Bidang Struktur?

Pertama-tama, penting untuk memahami konsep tentang bidang struct . Itu bidang struct adalah variabel yang dikelompokkan untuk membentuk a struct obyek. Setiap bidang struct memiliki nama dan tipe data. Misalnya, sebuah struct yang merepresentasikan seseorang mungkin memiliki field seperti nama, umur, dan jenis kelamin.







Bagaimana Cara Menetapkan Nilai Default untuk Bidang Struktur di Golang?

Nilai dasar dapat ditugaskan untuk bidang struct di Go menggunakan:



  • Nilai Nol Default
  • Konstruktor
  • Struktur Literal
  • Nilai Bidang Default

1: Nilai Nol Default

Di Go, menetapkan nilai default ke bidang struct dapat dicapai dengan ' nilai nol ' fitur. Fitur ini secara otomatis memberikan nilai default baik “ 0 ' atau ' PALSU ” ke setiap bidang yang tidak diinisialisasi, bergantung pada tipe data. Ini berarti Anda tidak perlu menetapkan nilai default secara eksplisit untuk setiap kolom dalam struct, karena Go akan melakukannya untuk Anda.



Fitur ini dapat berguna ketika berhadapan dengan struct besar dengan banyak bidang, karena menghemat waktu dan tenaga untuk mengatur nilai default secara manual untuk setiap bidang.





Berikut adalah contoh yang menggunakan nilai nol untuk menetapkan nilai default untuk bidang struct:

paket utama

impor 'fmt'

jenis Struktur orang {
Beri nama   string
Usia    int
Tinggi mengapung64
Bool IsMale
}

fungsi utama ( ) {
p1 := Orang { Nama: 'Yohanes' , Usia: 30 }
fmt.Println ( p1.Nama )
fmt.Println ( p1.Usia )
fmt.Println ( p1.Tinggi )
fmt.Println ( p1.IsMale )
}

Kode di atas mendefinisikan Orang struct dengan empat bidang: Nama, Umur, Tinggi, dan IsMale, yang semuanya bertipe data bool. Kemudian, kita membuat instance baru dari kelas Person, p1, dan menginisialisasi beberapa bidangnya dengan menggunakan struct literal untuk menentukan nama dan nilai bidang. Itu nilai nol default untuk bidang yang tidak ditetapkan secara eksplisit selama inisialisasi ditampilkan saat Anda mencetak nilai bidang menggunakan fmt.Println .



Keluaran

2: Konstruktor

Dengan menulis a konstruktor fungsi untuk struct, Anda juga dapat memberikan nilai default ke bidang struct di Golang. Itu konstruktor function membuat instance baru dari struct dan menetapkan nilai default untuk bidangnya. Metode ini menghemat tenaga dan waktu, terutama saat berinteraksi dengan struktur besar dengan banyak bidang.

Berikut adalah contoh cara mendefinisikan a konstruktor fungsi dengan nilai bidang default untuk struct:

paket utama

impor 'fmt'

jenis Struktur orang {
Beri nama    string
Usia     int
Rangkaian alamat
}
func Orang Baru ( ) * Orang {
kembali & Orang {
Nama: 'John Doe' ,
Usia: 30 ,
Alamat: '123 Jalan Utama' ,
}
}
fungsi utama ( ) {
p := Orang Baru ( )
fmt.Println ( p.Nama, p.Umur, p.Alamat )
}

Pada kode di atas, a Orang struct didefinisikan, serta orang baru() fungsi, yang menghasilkan instance baru dari Orang struct dengan default yang telah ditentukan. Kami memanggil orang baru() di dalam utama() untuk membuat instance Person baru dengan nilai bidang default , lalu kami mencetak nilai bidang instance tersebut.

Keluaran

3: Struktur Literal

Di Golang, Anda dapat menetapkan nilai default untuk bidang struct menggunakan struct literal demikian juga. Cukup buat instance baru dari struct dan tetapkan nilai untuk setiap bidang yang perlu diinisialisasi. Jika Anda ingin menyetel nilai default untuk bidang yang tidak diinisialisasi secara eksplisit, Anda dapat menggunakan fitur nilai nol.

Berikut adalah contoh cara menggunakan struct literal untuk menetapkan nilai bidang default untuk sebuah struct:

paket utama

impor 'fmt'

jenis Struktur orang {
Beri nama    string
Usia     int
Rangkaian alamat
}
fungsi utama ( ) {
p := Orang {
Nama: 'John Doe' ,
Usia: 30 ,
}
fmt.Println ( p.Nama, p.Umur, p.Alamat )
}

Pada kode di atas, kita mendefinisikan a Orang struct dalam contoh ini dan buat instance baru menggunakan struct literal dan nilai default untuk bidangnya. Baru Orang instance dibuat di main() dengan beberapa nilai bidang diisi dan yang lainnya dibiarkan kosong. Sejak Alamat bidang tidak diinisialisasi, ia menerima string kosong yang merupakan nilai default untuk bidang ini. Terakhir, kami mencetak nilai bidang instance Person.

Keluaran

4: Nilai Bidang Default

Menugaskan nilai dasar ke bidang struct in Go adalah proses yang mudah. Itu nilai default untuk bidang struct dapat diatur menggunakan sintaks fieldName:nilaidefault . Misalnya, pertimbangkan definisi struct berikut:

jenis Struktur orang {
Tali nama
Usia int
Tali jenis kelamin
}

Untuk menetapkan nilai dasar ke bidang struct ini, kita dapat menggunakan sintaks berikut:

p := Orang {
Nama: 'John Doe' ,
Usia: 30 ,
Jenis kelamin: 'Pria' ,
}

Dalam contoh di atas, kami telah ditugaskan nilai dasar ke bidang struct Person. Jika kita menghilangkan salah satu nilai selama inisialisasi, maka nilai default akan digunakan sebagai gantinya. Misalnya, jika kita menginisialisasi objek Person seperti ini:

p := Orang {
Nama: 'Jane Doe' ,
}

Objek Orang yang dihasilkan akan memiliki nilai dasar untuk bidang Usia dan Jenis Kelamin, masing-masing adalah 0 dan string kosong.

Berikut adalah kode lengkap yang menggambarkan proses di atas:

paket utama
impor 'fmt'

jenis Struktur orang {
Beri nama   string
Usia    int
Tali jenis kelamin
}
fungsi utama ( ) {
p1 := Orang {
Nama: 'John Doe' ,
Usia: 30 ,
Jenis kelamin: 'Pria' ,
}
fmt.Println ( p1 )

p2 := Orang {
Nama: 'Jeremy' ,
}
fmt.Println ( p2 )
}

Pada contoh di atas, kita membangun sebuah struct Person yang memiliki tiga field: Name, sebuah int yang mewakili usia, dan Gender, sebuah string yang mewakili gender. Sintaks inisialisasi struct kemudian digunakan untuk membuat dua instance Person, p1 dan p2. p1 diinisialisasi dengan nilai “John Doe” untuk Name, “30” untuk Age, dan “Male” untuk Gender, yang semuanya merupakan nilai yang telah disediakan secara jelas. Karena kami tidak memberikan nilai untuk Usia dan Jenis Kelamin, masing-masing nilai default 0 dan string kosong akan ditetapkan untuknya. p2 awalnya diinisialisasi hanya dengan bidang Nama yang disediakan.

Keluaran

Kesimpulan

Menugaskan nilai dasar in Go adalah aspek penting dari pemrograman dengan bahasa ini. Ini membantu memastikan bahwa setiap instance struct yang dibuat memiliki data default yang ditetapkan padanya. Dengan menggunakan salah satu metode yang dijelaskan di atas, pengembang dapat mengatur nilai dasar bidang struct secara efisien.